在 win32 c++ 中;有没有办法确定文件夹/文件是否可访问?您知道如果您尝试访问 C:/Windows 目录中的某个文件夹,您将收到一个弹出窗口,提示“此文件夹无法访问”。
也许有一个文件属性常量表明该文件是私有的?也许类似 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]
最好的办法就是尝试访问它。
您可以计算访问控制列表为特定用户帐户授予的访问权限,但这相当复杂,并且在执行访问检查后权限可能会发生变化。因此,只需打开文件并处理访问被拒绝错误即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)