3
我用下面的代碼,以獲取有關文件系統的目錄信息失敗:在用FindFirstFile根路徑
LPCTSTR pStrPath = L"D:\\1";
WIN32_FIND_DATA wfd;
HANDLE hDummy = ::FindFirstFile(pStrPath, &wfd);
if(hDummy != INVALID_HANDLE_VALUE)
{
//Use 'wfd' info
//...
::FindClose(hDummy);
}
else
{
int error = ::GetLastError();
}
代碼工作得很好,除非我指定一個根路徑:
D:\
- 錯誤代碼ERROR_FILE_NOT_FOUND
D:
- 錯誤代碼ERROR_FILE_NOT_FOUND
\\SRVR-1\share
- 錯誤代碼ERROR_BAD_NET_NAME
\\SRVR-1\share\
- 錯誤代碼ERROR_BAD_NET_NAME
\\SRVR-1\HiddenShare$
- 錯誤代碼ERROR_BAD_NET_NAME
但它工作在以下情況:
D:\1
- 沒有錯誤\\SRVR-1\share\1
- 無錯誤\\SRVR-1\HiddenShare$\1
- 無錯
任何想法爲什麼?
設備的根目錄不是普通的目錄項,所以'FindFirstFile'不能返回關於它的信息。您可以使用諸如'GetVolumeInformation'和'GetDiskFreeSpaceEx'之類的調用來查找有關卷的各種信息。 –
@JonathanPotter:謝謝。但是,我需要知道我的路徑是否是根。這就造成了額外的問題... – c00000fd
好的。我發現至少我可以使用'GetFileAttributesEx'作爲屬性。該API似乎沒有將根路徑與其他路徑區別開來。 – c00000fd