可以使用以下代码来判断是否有对指定路径的访问权限:

public bool CheckPathAccess(string path)
{
    try
    {
        var permission = new FileIOPermission(FileIOPermissionAccess.PathDiscovery, path);
        permission.Demand();
        return true;
    }
    catch (SecurityException)
    {
        return false;
    }
}

调用方式如下:

string path = @'\192.168.11.248\软件\勿删\高功率效率测试值\测试值';
if (CheckPathAccess(path))
{
    // 有访问权限
}
 else
{
    // 没有访问权限
}

代码解释:

  1. FileIOPermission 类用于表示文件系统操作的权限,FileIOPermissionAccess.PathDiscovery 指定了要检查的权限为“路径发现”权限,即是否可以访问该路径。
  2. Demand() 方法检查当前程序是否具有该权限。
  3. 如果程序具有该权限,则代码正常执行,返回 true;否则抛出 SecurityException 异常,代码捕获异常并返回 false

示例代码中,path 变量定义了要检查的文件路径,程序调用 CheckPathAccess() 方法来判断是否有访问该路径的权限,并根据返回值进行相应的操作。

注意:该代码需要在应用程序的配置文件中添加 Security 节点来配置程序的权限。例如:

<configuration>
  <system.security>
    <permissions>
      <IPermission class='System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' version='1' UnmanagedCode='true' PathDiscovery='*AllFiles*' />
    </permissions>
  </system.security>
</configuration>

其中 PathDiscovery 属性指定了程序可以访问的文件路径,*AllFiles* 表示可以访问所有文件路径。

通过使用 CheckPathAccess() 方法,可以判断程序是否有访问指定文件路径的权限,避免出现由于访问权限不足导致的错误。

C# 代码判断文件路径访问权限

原文地址: https://www.cveoy.top/t/topic/mkVk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录