#.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. Кажется, что по какой-то причине разрешения где-то изменились … это когда-то работало (файлы в моей папке пользователя), а теперь нет.