java.io.File.exists () не работает в Windows 7 - PullRequest
3 голосов
/ 09 декабря 2011

Это безумие.Java-программа терпит неудачу самым простым способом, который только можно себе представить.Он ищет свой файл конфигурации, расположенный в ${user.home} из свойств системы.Я регистрирую, где программа ищет файл, и убедился, что искомый файл действительно существует и находится в нужном месте.Но когда программа запускается, она не может найти файл конфигурации (сначала проверка выполняется с помощью File.exists ()).Это на ПК под управлением Windows 7. Эта же программа работает без этого на ряде других ПК под управлением Windows 7 или XP.

Сначала я подумал, что я запускаю эту программу с помощью RemoteПодключение к рабочему столу из коробки XP может быть значительным.В Google .NET file.exists() есть несколько обращений к этому.Однако, когда мой коллега идет непосредственно к рассматриваемому ПК и пытается запустить программу локально, происходит то же самое.

Я в тупике.У кого-нибудь есть идеи?

Вот код:

static private File configDir = new File(System.getProperty("user.home"));
File configFile = new File(configDir, fileName);
log.debug("config file directory is " + configDir);
if (configFile.exists()) {
...
} else {
   log.info("Override Configuration from File System not found.");
}

1 Ответ

2 голосов
/ 09 декабря 2011

У меня была эта проблема при кодировании решения для интервью, и это произошло из-за того, что файл на самом деле назывался

foo.txt.txt

, но отображался как:

foo.txt.

У меня есть сильное подозрение, что либо проблема, либо проблема с разрешениями, упомянутая в комментариях выше, вызывает эту проблему.Но если вы можете открыть файл от имени того же пользователя, от которого выполняется Java-программа, вы можете исключить проблему с разрешениями.В Windows вы можете установить флажок, который показывает расширения файлов.Вот ссылка , которая демонстрирует, как переключать это поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...