我需要遍历计算机上的各种目录(通过DirectoryInfo)。其中一些不可访问,并发生UnauthorizedAccessException。如何在不捕获异常的情况下检查目录访问?
最佳答案
您需要使用Security
命名空间。
请参见this SO答案。
从答案:
FileIOPermission writePermission = new FileIOPermission(FileIOPermissionAccess.Write, filename);
if(!SecurityManager.IsGranted(writePermission))
{
//No permission.
//Either throw an exception so this can be handled by a calling function
//or inform the user that they do not have permission to write to the folder and return.
}
更新:(以下评论)
FileIOPermission
处理安全策略而不是文件系统权限,因此您需要使用DirectoryInfo.GetAccessControl
。