File.exists () возвращает false, когда файл существует

Просто используйте Caching Application Block , если вы не хотите изобретать велосипед. Если вы все еще хотите использовать кеш ASP.NET- , см. Здесь . Я уверен, что это работает только с .NET 2.0 и выше, хотя. Просто невозможно было использовать кеш вне ASP.NET в .NET 1.

На странице MSDN также есть большое предупреждение о документации кеша:

Класс Cache не предназначен для использования вне приложений ASP.NET. Он был разработан и протестирован для использования в ASP.NET для обеспечения кэширования веб-приложений. В других типах приложений, таких как консольные приложения или приложения Windows Forms, кэширование ASP.NET может работать неправильно.

Для очень легкого решения, где вам не нужно беспокоиться об истечении срока действия и т. Д., Тогда достаточно словарного объекта.

84
задан Peter Mortensen 4 June 2016 в 20:08
поделиться

3 ответа

Если у процесса нет разрешений на определение существования файла, он вернет false. Файл можно открыть, но обычными методами нельзя определить, существует ли он.

15
ответ дан 24 November 2019 в 08:39
поделиться

Если ситуации, когда он не работает, включают запуск его от имени другого пользователя, а вы используете Windows Vista / Windows 7, это может быть вызвано VirtualStore, механизмом, при котором Windows позволяет непривилегированному пользователю «писать» места, которые он обычно не может. Однако изменения хранятся в "% USERPROFILE% \ AppData \ Local \ VirtualStore \", который является личным для каждой учетной записи пользователя.

0
ответ дан 24 November 2019 в 08:39
поделиться

Я наблюдаю следующую ситуацию на Windows 7:

file.exists() == false
file.getAbsoluteFile().exists() == true

Файл, о котором идет речь - "var\log", абсолютный путь действительно ссылается на существующий файл, который находится в обычном подкаталоге (не в виртуальном хранилище). Это видно из IDE.

37
ответ дан 24 November 2019 в 08:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: