作者tsaiminghan (nahgnimiast)
看板C_and_CPP
标题[问题] 判断磁碟是否存在
时间Sat Mar 14 00:47:58 2009
之前在网路上找判断某碟是不是存在,找到二个方法。
不过第二个方法速度大胜第一个,而且找到的碟也比较多,像是一些网路磁碟也
找的到。猜想大概是第一个方法的权限设定,使得找到的比较少。
不知道一般找磁碟用的方法是?
===============方法1=============
#inclue<windows.h>
#iclude<atlstr.h>
CString s;
HANDLE hDrive;
for(DWORD dwDrive = L'B'; dwDrive<=L'Z'; dwDrive++)
{
s.Format(L"\\\\.\\%c:", dwDrive);
hDrive = CreateFile(s.GetBuffer(), FILE_ALL_ACCESS, FILE_SHARE_READ |
FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
NULL);
if(hDrive != INVALID_HANDLE_VALUE)
{
//此碟存在
}
CloseHandle(hDrive);
}
=================方法2============
#include <direct.h>
int nCurDrive = _getdrive();
for(int i=2 ; i < 26 ; i++)
{
if(!_chdrive(i))
{
//此碟存在
}
}
_chdrive(nCurDrive);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.168.67.31
※ 编辑: tsaiminghan 来自: 218.168.67.31 (03/14 00:50)
※ 编辑: tsaiminghan 来自: 218.168.67.31 (03/14 00:51)
1F:推 marukocc:GetLogicalDrives 03/14 03:08
2F:→ tsaiminghan:谢谢 03/14 10:53