java循环取出目录下的所有jpg,mp4文件路径,保存首个根目录文件名
时间: 2023-09-11 22:05:57 浏览: 204
java 提取目录下所有子目录的文件到指定位置
您好!针对您的问题,可以使用Java的文件遍历功能来实现。具体的代码如下:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileTraversal {
// 保存文件路径的List
private List<String> filePaths = new ArrayList<String>();
// 保存首个根目录文件名
private String rootFileName = "";
public List<String> getFilePaths(String dirPath) {
File dir = new File(dirPath);
if (dir.exists()) {
// 递归遍历目录
traversalDir(dir);
}
return filePaths;
}
private void traversalDir(File dir) {
if (dir.isDirectory()) {
// 遍历目录下的所有文件和子目录
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
traversalDir(file);
} else {
// 判断文件扩展名是否为jpg或mp4
String fileName = file.getName();
String extension = fileName.substring(fileName.lastIndexOf(".") + 1);
if ("jpg".equalsIgnoreCase(extension) || "mp4".equalsIgnoreCase(extension)) {
filePaths.add(file.getAbsolutePath());
if (rootFileName.isEmpty()) {
// 保存首个根目录文件名
rootFileName = dir.getName();
}
}
}
}
}
}
public String getRootFileName() {
return rootFileName;
}
}
```
使用示例:
```java
public static void main(String[] args) {
String dirPath = "C:/test";
FileTraversal fileTraversal = new FileTraversal();
List<String> filePaths = fileTraversal.getFilePaths(dirPath);
String rootFileName = fileTraversal.getRootFileName();
System.out.println("文件路径列表:");
for (String filePath : filePaths) {
System.out.println(filePath);
}
System.out.println("首个根目录文件名:" + rootFileName);
}
```
其中,`dirPath` 是要遍历的目录路径,`filePaths` 是遍历得到的所有 jpg 和 mp4 文件的路径列表,`rootFileName` 是首个根目录文件名。
阅读全文