Изменил ли .Net 4.0 файл.Существует?

#.net-4.0

#.net-4.0

Вопрос:

Что раньше работало для меня, когда я проверял, есть ли файл.Exists теперь возвращает значение false .

Мы недавно обновились до версии 4.0 — и теперь любые файлы в моей личной папке пользователя возвращают значение FALSE для File.Существует.

Кто-нибудь сталкивался с этим или знает о проблеме?

(Например — (File.Существует («C:UsersPublictest.txt «)) будет равно TRUE, но (File.Существует («C:UsersperonalFolder.domaintest.txt «)) всегда возвращается ЛОЖЬ)

Спасибо.

Комментарии:

1. У вас есть права на доступ к этой папке?

2. Я делаю … все это работало раньше. Возможно, произошли некоторые изменения разрешений, но я об этом не знаю.

3. Это довольно простое консольное приложение, которое воспроизводит эту функциональность? Или что-то еще? Если это веб-приложение, оно, вероятно, будет запущено в другом пуле приложений, чем тот, который у вас был в версии 2.0, и может иметь другой пользовательский контекст.

Ответ №1:

Маловероятно, что File.Exists это изменилось. Более вероятно, что ваша среда изменилась. Я бы рекомендовал заглянуть в настройки вашего пула приложений (если это необходимо), как упоминал @Jesse.

Вы можете попытаться определить, является ли это проблемой .NET или проблемой среды, используя следующий сценарий powershell в качестве модульного теста для доступа к файлам:

 $SourceFile = "c:fooTest.txt";

if ([System.IO.File]::Exists($SourceFile))  {
   "Source File exists"
}
else {
   "Source file ($Sourcefile) does not exist."
}
 

Комментарии:

1. Кажется, что по какой-то причине разрешения где-то изменились … это когда-то работало (файлы в моей папке пользователя), а теперь нет.