.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的主要内容,如果未能解决你的问题,请参考以下文章
带有 CA 图层掩码的 NSScrollView 添加了第二个无用的滚动条