在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
仅获取文件句柄才能关闭它?不,你应该使用文件句柄来做一些有用的事情。如果你不打算使用资源,为什么它的权限很重要? –