一、需求描述
项目需求:想要制作一个可以根据输入一个指定的文件夹路径,可以获取指定类型的文件路径(本实例是jpg和png图片路径输出的代码),可以扫描到文件夹中子文件夹的图片并输出,同时拥有一个可以去除路径中不需要的前缀的代码案例。
二、解决办法
想必大家在搜索想要的相关案例时,大多数都是用来借鉴修改的(或者直接使用的),所以为了不让大家感到麻烦就先直接贴出一个可以运行代码,想要使用的可以直接使用,只需要按照我的类名建一个类,即可运行,因为我的这个整体代码是把所有方法写在一起了,包括主方法,大家完全可以把我这个代码当工具来用,所以话不多说直接看完整代码,详细讲解看第三部分:
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class ImageFileExporter {
public static void main(String[] args) {
String folderPath = "D:\\1\\image"; // 替换为你的文件夹路径
String prefixToRemove = "D:\\1\\"; // 要移除的前缀
List<String> imagePaths = getImagePaths(folderPath, prefixToRemove);
exportToTxt(imagePaths);
}
private static List<String> getImagePaths(String folderPath, String prefixToRemove) {
List<String> imagePaths = new ArrayList<>();
try {
// 获取一级文件夹列表
List<Path> topLevelFolders = new ArrayList<>();
Files.list(Paths.get(folderPath)).forEach(filePath -> {
if (Files.isDirectory(filePath)) {
topLevelFolders.add(filePath);
} else if (isImageFile(filePath.toString())) {
// 如果当前文件夹直接包含图片文件,添加到列表中
String imagePath = filePath.toString();
if (imagePath.startsWith(prefixToRemove)) {
imagePath = imagePath.substring(prefixToRemove.length());