用java将文件夹子目录的所有图片提取到指定目录
时间: 2024-09-19 14:13:26 浏览: 33
在Java中,你可以使用`java.io.File`和`java.nio.file`包下的类来遍历文件夹及其子目录,并提取所有的图片。这里是一个简单的示例,它会查找`.jpg`, `.png`, `.gif`等常见的图片文件格式:
```java
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ImageExtractor {
public static void main(String[] args) {
String sourceFolder = "/path/to/source/folder"; // 源文件夹路径
String destinationFolder = "/path/to/destination/folder"; // 目标文件夹路径
File source = new File(sourceFolder);
if (!source.exists() || !source.isDirectory()) {
System.out.println("Source folder not found or not a directory.");
return;
}
try {
Files.walkFileTree(Paths.get(sourceFolder), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (attrs.isRegularFile() && isImage(file)) {
copyFile(file, Paths.get(destinationFolder));
}
return FileVisitResult.CONTINUE; // 继续访问其他文件
}
private boolean isImage(Path path) {
String fileName = path.getFileName().toString();
return fileName.endsWith(".jpg") || fileName.endsWith(".png") || fileName.endsWith(".gif");
}
private void copyFile(Path src, Path dst) throws IOException {
Files.copy(src, dst);
System.out.printf("Copied %s to %s%n", src, dst);
}
});
} catch (IOException e) {
System.err.println("Error occurred while extracting images: " + e.getMessage());
}
}
}
```
在这个例子中,我们创建了一个名为`SimpleFileVisitor`的简单文件访问者,它遍历源文件夹的树形结构。对于每个文件,如果它是常规文件并且是图像(根据文件名后缀判断),则复制到目标文件夹。
注意:你需要替换`sourceFolder`和`destinationFolder`为你实际的文件路径。