看板 C_and_CPP 關於我們 聯絡資訊
之前在網路上找判斷某碟是不是存在,找到二個方法。 不過第二個方法速度大勝第一個,而且找到的碟也比較多,像是一些網路磁碟也 找的到。猜想大概是第一個方法的權限設定,使得找到的比較少。 不知道一般找磁碟用的方法是? ===============方法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)
marukocc:GetLogicalDrives 03/14 03:08
tsaiminghan:謝謝 03/14 10:53