磁盘驱动器卷标名称

时间:2021-04-06 11:30:02
//Get   Window   Directory   
TCHAR m_syspath[MAX_PATH];
GetWindowsDirectory(m_syspath,MAX_PATH);

TCHAR temp[MAX_PATH];
memset(temp,0,MAX_PATH);
lstrcpy(temp,m_syspath);
CString sysDir;
sysDir=_tcstok(temp,_T("\\"));
sysDir+=_T("\\");

//判断硬盘是否为NTFS分区还是FAT32
//取得逻辑磁盘的信息,然后判断

// TODO: Add extra validation here
DWORD VolumeSerialNumber=0;
DWORD FileSystemFlags=0; //文件系统标志
DWORD dwMaximumComponentLength; //文件名最大长度
TCHAR lpFileSystemNameBuffer[1024]={0};//文件系统名称
char VolumeName[MAX_PATH] = {0};
BOOL ret = GetVolumeInformation(_T("e:\\") ,//sysDir
VolumeName,
MAX_PATH,
&VolumeSerialNumber,
&dwMaximumComponentLength,
&FileSystemFlags,
lpFileSystemNameBuffer,
1024);
AfxMessageBox(VolumeName);
/*
磁盘驱动器卷标名称


1、对于没有卷标的硬盘分区,系统会将其显示为“本地磁盘”,但实际卷标为空。
2、盘符后面是要加\的,可能某些时候不加\也能成功,但不要这样用。
*/

SHFILEINFO sfi;
::SHGetFileInfo("z:\\", 0, &sfi, sizeof(sfi), SHGFI_DISPLAYNAME);
::MessageBox(NULL, sfi.szDisplayName, NULL, 0);



// CDialog::OnOK();