[問題] 判斷磁碟是否存在

看板C_and_CPP作者 (nahgnimiast)時間15年前 (2009/03/14 00:48), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
之前在網路上找判斷某碟是不是存在,找到二個方法。 不過第二個方法速度大勝第一個,而且找到的碟也比較多,像是一些網路磁碟也 找的到。猜想大概是第一個方法的權限設定,使得找到的比較少。 不知道一般找磁碟用的方法是? ===============方法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)

03/14 03:08, , 1F
GetLogicalDrives
03/14 03:08, 1F

03/14 10:53, , 2F
謝謝
03/14 10:53, 2F
文章代碼(AID): #19kev03- (C_and_CPP)