QAZ*_*QAZ 9 windows path device
你如何解决NT风格的设备路径,例如\Device\CdRom0,它的逻辑驱动器号,例如G:\?
编辑:卷名称与设备路径不同,所以不幸的是GetVolumePathNamesForVolumeName()不起作用.
希望以下代码片段能够为您提供足够的解决方案 - 在您初始化之后,您只需要遍历集合即可找到您的匹配项.在插入集合之前,您可能希望将所有内容转换为大写/小写,以帮助查找性能.
typedef basic_string<TCHAR> tstring;
typedef map<tstring, tstring> HardDiskCollection;
void Initialise( HardDiskCollection &_hardDiskCollection )
{
TCHAR tszLinkName[MAX_PATH] = { 0 };
TCHAR tszDevName[MAX_PATH] = { 0 };
TCHAR tcDrive = 0;
_tcscpy_s( tszLinkName, MAX_PATH, _T("a:") );
for ( tcDrive = _T('a'); tcDrive < _T('z'); ++tcDrive )
{
tszLinkName[0] = tcDrive;
if ( QueryDosDevice( tszLinkName, tszDevName, MAX_PATH ) )
{
_hardDiskCollection.insert( pair<tstring, tstring>( tszLinkName, tszDevName ) );
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7010 次 |
| 最近记录: |