.Net - использование FileIOPermission с маской в ​​имени файла - PullRequest
0 голосов
/ 31 марта 2010

Я хотел бы применить FileIOPermission к множеству файлов, используя маску в имени файла, напр. на всех текстовых файлах в папке C: \ TMP:

[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 Ответ

2 голосов
/ 31 марта 2010

Проверяя документацию MSDN для FileIOPermission Constructor , вполне определенно, что ArgumentException будет выброшен для ряда условий, включая «Параметр path не указывает абсолютный путь к файлу или каталогу»

К сожалению, интерпретация этого буквально подразумевает, что вы не можете использовать подстановочные знаки с FileIOPermission.

Если не использовать собственный класс разрешений, лучшее, что вы можете сделать, - это просто обратиться к каталогу C: \ TMP.

...