可以通过以下步骤实现:
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
public class TxtFileVisitor extends SimpleFileVisitor<Path> {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toString().endsWith(".txt")) {
System.out.println(file);
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
if (dir.getFileName().toString().equals("子目录1") || dir.getFileName().toString().equals("子目录2")) {
return FileVisitResult.SKIP_SUBTREE;
}
return FileVisitResult.CONTINUE;
}
}
public class Main {
public static void main(String[] args) throws IOException {
Path rootDir = Paths.get("根目录的路径");
TxtFileVisitor fileVisitor = new TxtFileVisitor();
Files.walkFileTree(rootDir, fileVisitor);
}
}
在上述代码中,你需要将"根目录的路径"替换为实际的根目录路径,"子目录1"和"子目录2"替换为需要排除的子目录名称。
这段代码会遍历指定的根目录及其子目录,对于每个文件,如果是以".txt"结尾的文件,则输出文件路径。对于每个目录,在进入该目录之前,会检查目录名称是否为需要排除的子目录,如果是,则跳过该子目录及其子目录的遍历。
这个方法适用于需要遍历目录树并查找指定类型文件的场景,比如查找所有的.txt文件。你可以根据实际需求进行修改和扩展。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为腾讯云的一些相关产品,其他厂商也提供类似的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云