Мне интересно, есть ли способ улучшить приведенный ниже код и не только совместить, но и удалить все файлы и каталоги, содержащие символ «e» от их имени. Любая помощь приветствуется!Как удалить все файлы на основе определенного символа в именах файлов, используя Java
Заранее спасибо.
Вот код:
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
class Finder extends SimpleFileVisitor<Path> {
private final PathMatcher matcher;
Finder() {
matcher = FileSystems.getDefault().getPathMatcher("glob:*e*");
}
//@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
find(file);
return FileVisitResult.CONTINUE;
}
//@Override
public FileVisitResult preVisitDirectory(Path file, BasicFileAttributes attrs) {
find(file);
return FileVisitResult.CONTINUE;
}
void find(Path file) {
Path name = file.getFileName();
if(matcher.matches(name)) {
System.out.println("Matched file: " + file.getFileName());
}
}
}
public class FileVisitor2 {
public static void main(String[] args) throws IOException {
Finder finder = new Finder();
Path p = Paths.get("C:\\Users\\El\\School\\DirMain");
Files.walkFileTree(p, finder);
}
}
Как о получении файлов в качестве строки и использовать 'содержит (String ключевое слово)', чтобы обнаружить файлы, которые содержат ключевое слово и держать их в список строк и немедленно удалить список? –
Что делать, если имя каталога соответствует вашим критериям. Должно ли оно быть рекурсивно удалено? – SubOptimal
@SubOptimal, если каталог или имя файла соответствуют критериям, то есть они содержат «e» в их имени, их следует удалить/удалить. –