Эта статья является частью книги Java. Состояние языка и его перспективы (2022).
Давно я не писал ничего сюда, так как повторял английский. Но теперь я с этим практически закончил. Да и вообще, пора, наконец, вспомнить, для чего создавался этот сайт!
Эта статья посвящена моей поделке годичной давности — niofilecommander, который является по своей сути небольшим простеньким файловым менеджером на Java. Он использует классы из пакета java.nio.file.*, который предоставляет простой и понятный способ работы с файлами.Выглядит niofilecommander так:

Написал я его во время изучения основ Java буквально за пару дней.
Возможности niofilecommander:
- Две панели.
- Перемещение файлов и каталогов.
- Копирование файлов и каталогов.
- Удаление файлов и каталогов.
- Прописывание метаинформации: права доступа, дата и время создания, дата и время редактирования.
- Создание символических ссылок.
- Создание жёстких ссылок.
- Поиск файлов по регулярному выражению.
- Подписывается на событие изменения содержимого каталога, и при появлении нового файла сразу отображает его в списке.
Этот файловый менеджер вряд ли кто-нибудь будет использовать для работы, но его вполне можно использовать при изучении Java.
В его исходных кодах можно найти отличные примеры использования интерфейса java.nio.file.FileVisitor, класса java.nio.file.SimpleFileVisitor, методов Path.walkFileTree, методов Files.copy, Files.move, метода Files.createLink, метода Files.createSymbolicLink и методов установки атрибутов файлов для различных файловых систем.
Ссылки:
Замечательно автор! НО почему свин не стартоват в EDT потоке как говорит оракл?
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
….
}
});
Попытался запустить ваш код и обломался
1.
NioFileCommander\src\FileMetaDataFrame.java
Error:(1138, 67) java: incompatible types: java.util.Vector cannot be converted to java.util.Vector<java.util.Vector>
2. FileMetaDataFrame.java
это же не шутка?? куча классов в одном файле… просто классов.
Выложите пожалуйста рабочие исходники.
Да, что-то не так. Проверю вечером на этой неделе.
Проверил. Всё работает. Попробуйте просто создать новый проект в Eclipse, укажите JDK8, а затем положите исходники в папку src.
Скорее всего такие сложности из-за того, что это не проект Maven, так бы наверняка сразу собралось.
я использую Idea. JDK 9
На JDK 9 пока не могу проверить, но переделал конвертировал исходники в проект Maven, пока было время. Попробуйте сейчас, вдруг получится.