积极答复者
在智能设备项目下,如何检测移动磁盘

问题
答案
-
你好,
需要P/Invoke一下,具体参考网页:http://www.peterfoot.net/FreeSpaceOnStorageCards.aspx
Code片段:
public static DiskFreeSpace GetDiskFreeSpace(string directoryName) { DiskFreeSpace result = new DiskFreeSpace(); if(!GetDiskFreeSpaceEx(directoryName, ref result.FreeBytesAvailable,
ref result.TotalBytes, ref result.TotalFreeBytes)) { throw new Win32Exception(Marshal.GetLastWin32Error(), "Error retrieving free disk space"); } return result; }
public struct DiskFreeSpace { public long FreeBytesAvailable; public long TotalBytes; public long TotalFreeBytes; } [DllImport("coredll")] private static extern bool GetDiskFreeSpaceEx(string directoryName, ref long freeBytesAvailable, ref long totalBytes, ref long totalFreeBytes);
施炯- 已标记为答案 adamas 2010年6月6日 0:43
全部回复
-
你好,
可以参考这个帖子的方法:http://topic.csdn.net/t/20060323/17/4635453.html
BOOL DisplayStorgeSize(LPCTSTR lpszPath)
{
ASSERT(lpszPath!= NULL);
if (lpszPath==NULL)
return FALSE;
LPCTSTR lpstrPath=lpszPath;
ULARGE_INTEGER pFreeBAvailableToCaller;
ULARGE_INTEGER pTotalNuOfBytes;
CString strForMatName=_T( " ");
if(::GetDiskFreeSpaceEx(
lpstrPath,
&pFreeBAvailableToCaller,
&pTotalNuOfBytes,
NULL))
{ strForMatName.Format(_T( "%d "),pTotalNuOfBytes.LowPart/1048576);
strForMatName+=_T( " M ");
MessageBox(NULL,strForMatName,_T( "Info "),MB_OKCANCEL);
return TRUE;
}
else return FALSE;
}
施炯 -
你好,
需要P/Invoke一下,具体参考网页:http://www.peterfoot.net/FreeSpaceOnStorageCards.aspx
Code片段:
public static DiskFreeSpace GetDiskFreeSpace(string directoryName) { DiskFreeSpace result = new DiskFreeSpace(); if(!GetDiskFreeSpaceEx(directoryName, ref result.FreeBytesAvailable,
ref result.TotalBytes, ref result.TotalFreeBytes)) { throw new Win32Exception(Marshal.GetLastWin32Error(), "Error retrieving free disk space"); } return result; }
public struct DiskFreeSpace { public long FreeBytesAvailable; public long TotalBytes; public long TotalFreeBytes; } [DllImport("coredll")] private static extern bool GetDiskFreeSpaceEx(string directoryName, ref long freeBytesAvailable, ref long totalBytes, ref long totalFreeBytes);
施炯- 已标记为答案 adamas 2010年6月6日 0:43