C# 4.0 如何检查文件读取权限?

C# 4.0 如何检查文件读取权限?,c#-4.0,file-permissions,file-access,C# 4.0,File Permissions,File Access,我已经搜索了文件权限示例,但它们不起作用。我尝试过的例子: 示例1: try { FileIOPermission f = new FileIOPermission(PermissionState.None); f.AllLocalFiles = FileIOPermissionAccess.Read; f.AddPathList(FileIOPermissionAccess.Read, fullpath); f.Demand(); } catch(SecurityExc

我已经搜索了文件权限示例,但它们不起作用。我尝试过的例子:

示例1:

try
{
   FileIOPermission f = new FileIOPermission(PermissionState.None);
   f.AllLocalFiles = FileIOPermissionAccess.Read;
   f.AddPathList(FileIOPermissionAccess.Read, fullpath);
   f.Demand();
}
catch(SecurityException)
{
   MessageBox.Show("You don't have access");
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
f.AddPathList(FileIOPermissionAccess.Read, fullpath);
if (!SecurityManager.IsGranted(f))
    MessageBox.Show("You don't have access");
示例2:

try
{
   FileIOPermission f = new FileIOPermission(PermissionState.None);
   f.AllLocalFiles = FileIOPermissionAccess.Read;
   f.AddPathList(FileIOPermissionAccess.Read, fullpath);
   f.Demand();
}
catch(SecurityException)
{
   MessageBox.Show("You don't have access");
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
f.AddPathList(FileIOPermissionAccess.Read, fullpath);
if (!SecurityManager.IsGranted(f))
    MessageBox.Show("You don't have access");
这两个例子都不适用于我。我正在通过这些步骤,尽管没有任何许可。我错过什么了吗

我不明白哪一种是检查文件权限的常用方法?实际上,我不想使用catch来处理示例1中的情况

顺便问一下,我应该检查文件夹目录还是文件的完整路径

\\172.28.XXX.XX\\C:\\Files OR
\\172.28.XXX.XX\\C:\\Files\\abc.txt 

我发现,如果您没有任何权限,File.Exists(directory)返回false,因为File.Exists()不是为此目的而设计的,所以您应该小心。此外,如果文件不存在或用户无法访问,则无法通过这种方式进行区分。MSDN推荐的方法实际上是通过FileIOPermission,如示例2所示