0

我想使用文件名中的掩码对一组文件应用 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“路径中的非法字符”。

怎么了?有可能实现吗?

4

1 回答 1

2

检查FileIOPermission Constructor的 MSDN 文档,非常明确的是,ArgumentException 将针对多种情况引发,包括“路径参数未指定文件或目录的绝对路径”

不幸的是,从字面上解释这意味着您不能将通配符与 FileIOPermission 一起使用。

如果没有实现您自己的权限类,您能做的最好的事情就是引用 C:\TMP 目录。

于 2010-03-31T05:49:22.530 回答