java 拷贝目录下的文件到指定目录
时间: 2024-09-19 17:05:23 浏览: 58
在Java中,你可以使用`java.io.File`类和`Files`工具类来复制目录下的文件到另一个指定目录。以下是一个基本的例子:
```java
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
public class FileCopy {
public static void main(String[] args) {
// 源目录路径
String sourceDirPath = "/path/to/source/directory";
// 目标目录路径
String targetDirPath = "/path/to/target/directory";
try {
// 创建源文件对象
File sourceDir = new File(sourceDirPath);
if (!sourceDir.exists() || !sourceDir.isDirectory()) {
System.out.println("Source directory does not exist or is not a directory.");
return;
}
// 创建目标文件对象
File targetDir = new File(targetDirPath);
if (!targetDir.exists()) {
// 如果目标目录不存在,创建它
targetDir.mkdirs();
}
// 获取源目录下所有的文件和子目录
Path sourceRoot = sourceDir.toPath();
for (Path entry : Files.walk(sourceRoot)) {
// 避免复制自身和隐藏文件
if (!entry.equals(sourceRoot) && !entry.toString().startsWith(".")) {
// 如果是文件,则复制
if (Files.isRegularFile(entry)) {
Path dest = targetDirPath + entry.subpath(sourceRoot.getNameCount(), entry.getNameCount());
Files.copy(entry, dest, StandardCopyOption.REPLACE_EXISTING);
}
}
}
} catch (Exception e) {
System.out.println("Error copying files: " + e.getMessage());
e.printStackTrace();
}
}
}
```
这个示例会递归地遍历源目录,并将所有非隐藏的文件复制到目标目录中。注意处理可能出现的异常,比如路径无效、权限不足等。
阅读全文