Я работаю над назначением школы, и мы делаем простой файловый менеджер, который должен переместить все файлы с суффиксом "jpg"
(например) в другую папку. Проблема в том, что мы должны делать это рекурсивно через все папки.Java - Перемещение файлов в файловой системе
Пример: Вы находитесь в папке «загрузки»:
--downloads
----me.jpg
----smth.doc
----folder1
------you.jpg
и теперь вы должны переместить все файлы .jpg в папку «фотографии» и создать «Folder1» там, а также переместить файл «you.jpg "
Это то, что у меня есть, но это, кажется, переместить только файлы из„папки загрузки“
private void move(String suffix, String sourcePath, String destination) throws IOException{
File dir = new File(sourcePath);
File destDir = new File(destination);
String src;
String dst;
for (File f : dir.listFiles(new ExtensionFilter(suffix))){
String name = f.getName();
src = f.getAbsolutePath();
dst = destination + "\\" + name;
Files.createDirectories(Paths.get(destination));
Files.move(Paths.get(src), Paths.get(dst));
logs.add("MV;" + src + ";" + dst);
}
for (File f : dir.listFiles(new DirectoryFilter())){
move(suffix, f.getPath(), destination + "\\" + f.getName());
}
}
журналы просто ArrayList, чтобы сохранить журнал, какие файлы были перемещены
Начните с просмотра [Прогулка по файловому дереву] (https://docs.oracle.com/javase/tutorial/essential/io/walk.html) и [Поиск файлов] (https: // docs. oracle.com/javase/tutorial/essential/io/find.html), или, если вам не разрешено использовать эти методы, вы также можете посмотреть [этот пример] (http://stackoverflow.com/questions/12656569/recursive-method-to-search-through-folder-tree-and-find-specific-file-types/12656594 # 12656594), который использует API 'File' – MadProgrammer