java写一个取文件夹下photo,video,pdf文件夹下的的所有路径并创建类对象
时间: 2024-03-10 15:46:10 浏览: 54
好的,以下是一个Java程序,可以获取指定文件夹下photo、video、pdf文件夹中的所有文件路径,并创建类对象:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileFinder {
private List<String> photoFiles;
private List<String> videoFiles;
private List<String> pdfFiles;
public FileFinder(String folderPath) {
photoFiles = new ArrayList<>();
videoFiles = new ArrayList<>();
pdfFiles = new ArrayList<>();
File folder = new File(folderPath);
if (folder.exists() && folder.isDirectory()) {
File[] subFolders = folder.listFiles();
for (File subFolder : subFolders) {
if (subFolder.isDirectory()) {
if (subFolder.getName().equalsIgnoreCase("photo")) {
photoFiles.addAll(getFiles(subFolder));
} else if (subFolder.getName().equalsIgnoreCase("video")) {
videoFiles.addAll(getFiles(subFolder));
} else if (subFolder.getName().equalsIgnoreCase("pdf")) {
pdfFiles.addAll(getFiles(subFolder));
}
}
}
}
}
private List<String> getFiles(File folder) {
List<String> files = new ArrayList<>();
if (folder.exists() && folder.isDirectory()) {
File[] subFiles = folder.listFiles();
for (File subFile : subFiles) {
if (subFile.isFile()) {
files.add(subFile.getAbsolutePath());
}
}
}
return files;
}
public List<String> getPhotoFiles() {
return photoFiles;
}
public List<String> getVideoFiles() {
return videoFiles;
}
public List<String> getPdfFiles() {
return pdfFiles;
}
public static void main(String[] args) {
String folderPath = "C:\\test";
FileFinder finder = new FileFinder(folderPath);
List<String> photoFiles = finder.getPhotoFiles();
List<String> videoFiles = finder.getVideoFiles();
List<String> pdfFiles = finder.getPdfFiles();
// 创建类对象
// TODO: 在此处添加你的代码
}
}
```
上述程序中,我们首先定义一个 `FileFinder` 类,该类包含三个成员变量:`photoFiles`、`videoFiles` 和 `pdfFiles`,分别用于存储 photo、video、pdf 文件夹中的所有文件路径。在类的构造函数中,我们遍历指定文件夹下的所有子文件夹,如果子文件夹的名称为 photo、video 或 pdf,则调用 `getFiles` 方法获取该子文件夹中的所有文件路径,并将其添加到对应的成员变量中。
`getFiles` 方法用于获取指定文件夹中的所有文件路径,它接受一个 `File` 类型的参数,表示要获取文件路径的文件夹。该方法首先创建一个空列表 `files`,用于存储所有文件路径。然后遍历该文件夹下的所有子文件,如果子文件是文件(不是文件夹),则将其绝对路径添加到 `files` 列表中。最终返回 `files` 列表。
在类的 `main` 方法中,我们创建一个 `FileFinder` 对象,并调用其 `getPhotoFiles`、`getVideoFiles` 和 `getPdfFiles` 方法,分别获取 photo、video、pdf 文件夹中的所有文件路径。然后,我们可以在 `TODO` 注释处添加代码来创建类对象,例如:
```java
for (String photoFile : photoFiles) {
Photo photo = new Photo(photoFile);
// TODO: 对 photo 进行操作
}
for (String videoFile : videoFiles) {
Video video = new Video(videoFile);
// TODO: 对 video 进行操作
}
for (String pdfFile : pdfFiles) {
PDF pdf = new PDF(pdfFile);
// TODO: 对 pdf 进行操作
}
```
上述代码中,我们使用 `for` 循环遍历每个文件路径,然后分别创建 `Photo`、`Video` 和 `PDF` 类对象,并对其进行操作。你需要根据具体需求来编写 `Photo`、`Video` 和 `PDF` 类的代码。
阅读全文