2009-08-10 4 views

답변

11

Win32API 함수 :: GetVolumeInformation은 사용자가 찾고있는 것입니다. MSDN에서

:

GetVolumeInformation Function

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 
2

GetVolumeInformation는 당신이 필요로하는 무엇을 제공 할 것입니다. lpFileSystemNameBuffer에 드라이브 형식의 이름을 반환합니다.

멋진 랩퍼가 필요하면 Microsoft의 CVolumeMaster을 참조하십시오.

1

WMI의 Win32_LogicalDisk 클래스에는 해당 정보를 제공하는 FileSystem 속성이 있습니다.

3

예 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; 
    } 
관련 문제