Странное поведение из System.IO.DirectoryInfo. Существует функция - PullRequest
1 голос
/ 13 ноября 2010

Я разрабатываю приложение, используя c # и asp.Это необходимо для доступа к некоторым местам в локальной сети.В форме есть текстовое поле, которое принимает путь, к которому должен получить доступ пользователь, и сохраняет его в строковой переменной с именем location.

Цикл if всегда возвращает false, если приложение выполняется в Windows 7.это происходит только при запуске из установленного приложения, в противном случае он вернет true, если путь истинен.Вот код:

Ввод в текстовое поле BackupLocation выглядит так:

 \\192.168.0.33\Others (F)

.Он прекрасно работает, если приложение размещено в системе с Windows XP

 System.IO.DirectoryInfo locationInfo = new System.IO.DirectoryInfo(BackupLocationTxt.Text);
        if (locationInfo.Exists) // always return false  if the application run in windows 7
       {

       }

Почему это происходит?

Ответы [ 3 ]

2 голосов
/ 13 ноября 2010

Это происходит потому, что пользователь, под которым вы запускаете ваше приложение, не имеет прав для чтения этих папок. Возможно, вам потребуется предоставить доступ на чтение к этим папкам учетной записи, под которой вы запускаете свой сайт.

1 голос
/ 13 ноября 2010

Попробуйте System.IO.Directory.Exists(string path) вместо.

0 голосов
/ 13 ноября 2010

Ваше приложение ASP.NET не имеет прав доступа к папке на другом компьютере в локальной сети.

Попробуйте использовать службу Windows, запущенную под учетной записью LocalService.

...