.Net - 在文件名中使用带有掩码的 FileIOPermission

Posted

技术标签:

【中文标题】.Net - 在文件名中使用带有掩码的 FileIOPermission【英文标题】:.Net - using FileIOPermission with mask in file name 【发布时间】:2011-02-02 18:59:27 【问题描述】:

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

怎么了?到底有没有可能实现?

【问题讨论】:

【参考方案1】:

查看 FileIOPermission Constructor 的 MSDN 文档,非常明确的是,对于包括“路径参数未指定文件或目录的绝对路径”在内的许多条件将引发 ArgumentException

不幸的是,从字面上理解这意味着您不能在 FileIOPermission 中使用通配符。

没有实现自己的权限类,最好的办法就是引用 C:\TMP 目录。

【讨论】:

以上是关于.Net - 在文件名中使用带有掩码的 FileIOPermission的主要内容,如果未能解决你的问题,请参考以下文章

带有特定掩码的Matlab imcrop

如何使用带有 alpha 掩码的模板缓冲区

带有 CA 图层掩码的 NSScrollView 添加了第二个无用的滚动条

带有域掩码的 WordPress 站点的 htaccess 重定向不起作用

具有多个掩码的 U-Net 图像分割

java 带有信用卡掩码的Android TextInputLayout