Spec-Zone .ru
спецификации, руководства, описания, API
След: Существенные Классы
Урок: Основной ввод-вывод
Раздел: Файловый ввод-вывод (Обладающий NIO.2)
Проверка Файла или каталога
Домашняя страница > Существенные Классы > Основной ввод-вывод

Проверка Файла или каталога

У Вас есть a Path экземпляр, представляющий файл или каталог, но тот файл, существует на файловой системе? Действительно ли это читаемо? Перезаписываемый? Исполнимая программа?

Проверка Существования Файла или каталога

Методы в Path class является синтаксическим, означая, что они работают на Path экземпляр. Но в конечном счете следует получить доступ к файловой системе, чтобы проверить что деталь Path существует, или не существует. Можно сделать так с exists(Path, LinkOption...) и notExists(Path, LinkOption...) методы. Отметьте это !Files.exists(path) не эквивалентно Files.notExists(path). Когда Вы тестируете существование файла, три результата возможны:

Если оба exists и notExists возвратиться false, существование файла не может быть проверено.

Проверка Доступности Файла

Чтобы проверить, что программа может получить доступ к файлу как необходимый, можно использовать isReadable(Path), isWritable(Path), и isExecutable(Path) методы.

Следующий фрагмент кода проверяет, что определенный файл существует и что у программы есть возможность выполнить файл.

Path file = ...;
boolean isRegularExecutableFile = Files.isRegularFile(file) &
         Files.isReadable(file) & Files.isExecutable(file);

Отметьте: Как только любой из этих методов завершается, нет никакой гарантии, что к файлу можно получить доступ. Дефект коллективной безопасности во многих приложениях должен выполнить проверку и затем получить доступ к файлу. Для получения дополнительной информации используйте свою любимую поисковую систему, чтобы искать TOCTTOU (объявленный TOCK-также).

Проверка, определяют Ли Два Пути Местоположение Того же самого Файла

Когда у Вас есть файловая система, которая использует символьные ссылки, возможно иметь два различных пути, которые определяют местоположение того же самого файла. isSameFile(Path, Path) метод сравнивает два пути, чтобы определить, определяют ли они местоположение того же самого файла на файловой системе. Например:

Path p1 = ...;
Path p2 = ...;

if (Files.isSameFile(p1, p2)) {
    // Logic when the paths locate the same file
}

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Операции Файла
Следующая страница: Удаление Файла или каталога