我的窗户,C ++编程下,MFC我怎么能知道通过路径磁盘的格式,如“C:\”。 窗户是否提供这样的API?
Answer 1:
该Win32API函数:: GetVolumeInformation是你在找什么。
从MSDN:
GetVolumeInformation功能
BOOL WINAPI GetVolumeInformation(
__in_opt LPCTSTR lpRootPathName,
__out LPTSTR lpVolumeNameBuffer,
__in DWORD nVolumeNameSize,
__out_opt LPDWORD lpVolumeSerialNumber,
__out_opt LPDWORD lpMaximumComponentLength,
__out_opt LPDWORD lpFileSystemFlags,
__out LPTSTR lpFileSystemNameBuffer, // Here
__in DWORD nFileSystemNameSize
);
例:
TCHAR fs [MAX_PATH+1];
::GetVolumeInformation(_T("C:\\"), NULL, 0, NULL, NULL, NULL, &fs, MAX_PATH+1);
// Result is in (TCHAR*) fs
Answer 2:
是的,它是GetVolumeInformation。
TCHAR szVolumeName[100] = "";
TCHAR szFileSystemName[10] = "";
DWORD dwSerialNumber = 0;
DWORD dwMaxFileNameLength = 0;
DWORD dwFileSystemFlags = 0;
if(::GetVolumeInformation("c:\\",
szVolumeName,
sizeof(szVolumeName),
&dwSerialNumber,
&dwMaxFileNameLength,
&dwFileSystemFlags,
szFileSystemName,
sizeof(szFileSystemName)) == TRUE)
{
cout << "Volume name = " << szVolumeName << endl
<< "Serial number = " << dwSerialNumber << endl
<< "Max. filename length = " << dwMaxFileNameLength
<< endl
<< "File system flags = $" << hex << dwFileSystemFlags
<< endl
<< "File system name = " << szFileSystemName << endl;
}
Answer 3:
GetVolumeInformation会给你你所需要的。 这将返回lpFileSystemNameBuffer驱动器格式的名称。
如果你想围绕它一个很好的包装,你可能想看看微软的CVolumeMaster 。
Answer 4:
在WMI Win32_LogicalDisk类具有暴露该信息的文件系统属性。
文章来源: How to know a certain disk's format(is FAT32 or NTFS)