在win32 C++;有沒有辦法確定文件夾/文件是否可訪問?您知道如果您嘗試訪問C:/ Windows目錄&中的某個文件夾,您將看到一個彈出窗口,顯示「該文件夾無法訪問」。WinAPI方式確定文件是否可訪問/私有
也許有一個文件屬性常量,表示該文件是私人的?也許像FILE_ATTRIBUTE_PRIVATE?
WIN32_FIND_DATA dirData;
while (FindNextFile(dir, &dirData) != 0)
{
// I made the following constant up
if (!(fileData.dwFileAttributes & FILE_ATTRIBUTE_PRIVATE))
{
// file is accessible so store filepath
files.push_back(fileData.cFileName);
}
else // file is not accessible so dont store
}
或者是會知道的唯一途徑:
dir = FindFirstFileEx((LPCTSTR)directory.c_str(), FindExInfoStandard, &dirData, FindExSearchNameMatch, NULL, 0);
if (dir == ???) { the file is inaccessible } [/code]
是,'AccessCheck'會的工作,但它的複雜和棘手的使用。如果您想知道您是否可以打開文件,最簡單的方法就是嘗試打開文件並查看是否成功。 –
是啊,我從來沒有使用過它,但是OP正在尋找win32調用:)使用另一種替代方法更新了該文章 – DXM
僅獲取文件句柄才能關閉它?不,你應該使用文件句柄來做一些有用的事情。如果你不打算使用資源,爲什麼它的權限很重要? –