C# 代码判断文件路径访问权限
可以使用以下代码来判断是否有对指定路径的访问权限:
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
{
// 没有访问权限
}
代码解释:
FileIOPermission类用于表示文件系统操作的权限,FileIOPermissionAccess.PathDiscovery指定了要检查的权限为“路径发现”权限,即是否可以访问该路径。Demand()方法检查当前程序是否具有该权限。- 如果程序具有该权限,则代码正常执行,返回
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() 方法,可以判断程序是否有访问指定文件路径的权限,避免出现由于访问权限不足导致的错误。
原文地址: https://www.cveoy.top/t/topic/mkVk 著作权归作者所有。请勿转载和采集!