Я использую следующий код, чтобы проверить, существует ли файл и может быть прочитан в Java:Подробная информация о файле.exists() в Java?
File sourceFile = new File(sourcePath);
if (!sourceFile.exists() || !sourceFile.canRead())
throw new Exception("Source file is not accessible.");
Однако вопрос, который я хочу, чтобы решить это определение более зернистую подробно о почему существует() может или не может возвращать false. Например, местоположение может быть доступно, но файл не существует. Или местоположение может быть заблокировано брандмауэром, и файл существует, просто не доступен.
Есть быстрый способ сделать определение между:
- местоположение файла не доступен (брандмауэр, безопасность и т.д.)
- Местоположение доступен, но файл d.n.e.
- Файл существует, но чтение не предоставляется.
Спасибо!
Похоже, этот класс может предоставить детали я ищу. – Paul
try { Путь thePath = FileSystems.getDefault(). GetPath (sourcePath); thePath.getFileSystem(). Provider(). CheckAccess (thePath, AccessMode.READ); } \t \t \t \t \t \t улов (NoSuchFileException EX1) { бросить новый Exception ("Исходный файл не существует."); } улов (FileSystemException ех2) {\t \t \t \t \t \t \t // Пример: Сетевой путь не был найден. throw new Exception («Исходный файл недоступен:» + ex2.getReason()); \t \t \t \t \t \t \t } поймать (Exception ех) { бросить новый Exception ("Неизвестное исключение:" + ex.getMessage()); } – Paul
Это то, с чем я закончил. Питает в обработчик исключений моей программы, но с более подробной информацией. – Paul