0
我想知道是否有一种方法可以增强下面的代码,不仅可以匹配而且可以删除包含“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);
}
}
如何获取文件名作为字符串,并使用'包含(字符串关键字)'检测到含有关键字,并让他们在一个字符串列表中的文件和立即删除列表? –
如果目录名称符合您的条件,该怎么办。是否应该递归删除? – SubOptimal
@SubOptimal如果目录或文件名称符合条件,即它们的名称中包含“e”,则应将其删除/删除。 –