我想在文件名中使用掩码对文件集应用FileIOPermission,例如。在文件夹C:\ TMP:
中的所有txt文件上[type: FileIOPermission(SecurityAction.PermitOnly, Read = @"C:\TMP\*.txt")]
class SomeClass
{
static void testPermissions()
{
Console.WriteLine("allowed action");
File.OpenRead(@"C:\TMP\1.txt"); // <--- here goes exception
Console.WriteLine("denied action");
try
{
File.Create(@"C:\TMP\2.txt");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadKey();
}
}
}
抛出ArgumentException“路径中的非法字符”。
有什么问题?无论如何都可以实现吗?
答案 0 :(得分:2)
检查FileIOPermission Constructor的MSDN文档,非常具体的是,对于许多条件,将抛出ArgumentException,包括“path参数未指定文件或目录的绝对路径”
不幸的是,从字面上解释这意味着您不能将通配符与FileIOPermission一起使用。
如果没有实现自己的权限类,那么你可以做的最好就是改为引用C:\ TMP目录。