需要使用 java 将所有文件从一个文件夹复制到另一个文件夹
Need to copy all files from one folder to another using java
源文件夹 C:\temp
目标文件夹 C:\temp1
temp 有一个文件 (sample.csv)并且 temp1 文件夹是空的
我需要将 sample.csv 复制到 temp1
注意: 我不能在代码中的任何地方指定 sample.csv,因为这个名称是动态的。
Path temp = Files.move(paths.get(src),patha.get(dest)).
仅当我在 dest 目录中提供虚拟文件时才有效。
C:\temp1\dummy.csv(我只想指定 C:\temp1 并且 src 文件夹应该放在 temp1 中)
Apache commons-io 库有一个 FileUtils.copyDirectory()
方法。它将源目录及其子文件夹中的所有文件复制到目标目录,必要时创建目标目录。
如果您正在使用 Gradle,请将其添加到您的依赖项部分以将此库添加到您的项目中:
implementation 'commons-io:commons-io:2.11.0'
如果您想使用普通 java.nio
将文件从一个目录复制到另一个目录,您可以使用 DirectoryStream
.
这里有一些例子:
public static void main(String[] args) throws Exception {
// define source and destination directories
Path sourceDir = Paths.get("C:\temp");
Path destinationDir = Paths.get("C:\temp1");
// check if those paths are valid directories
if (Files.isDirectory(sourceDir, LinkOption.NOFOLLOW_LINKS)
&& Files.isDirectory(destinationDir, LinkOption.NOFOLLOW_LINKS)) {
// if they are, stream the content of the source directory
try (DirectoryStream<Path> ds = Files.newDirectoryStream(sourceDir)) {
// handle each file in that stream
for (Path fso : ds) {
/*
* copy it to the destination,
* that means resolving the file name to the destination directory
*/
Files.move(fso, destinationDir.resolve(fso.getFileName().toString()));
}
}
}
}
您可以添加更多检查,例如检查目录是否可读以及是否实际存在。我只是在这里检查一个目录,以显示 Files
class.
的可能性
源文件夹 C:\temp
目标文件夹 C:\temp1
temp 有一个文件 (sample.csv)并且 temp1 文件夹是空的
我需要将 sample.csv 复制到 temp1
注意: 我不能在代码中的任何地方指定 sample.csv,因为这个名称是动态的。
Path temp = Files.move(paths.get(src),patha.get(dest)).
仅当我在 dest 目录中提供虚拟文件时才有效。
C:\temp1\dummy.csv(我只想指定 C:\temp1 并且 src 文件夹应该放在 temp1 中)
Apache commons-io 库有一个 FileUtils.copyDirectory()
方法。它将源目录及其子文件夹中的所有文件复制到目标目录,必要时创建目标目录。
如果您正在使用 Gradle,请将其添加到您的依赖项部分以将此库添加到您的项目中:
implementation 'commons-io:commons-io:2.11.0'
如果您想使用普通 java.nio
将文件从一个目录复制到另一个目录,您可以使用 DirectoryStream
.
这里有一些例子:
public static void main(String[] args) throws Exception {
// define source and destination directories
Path sourceDir = Paths.get("C:\temp");
Path destinationDir = Paths.get("C:\temp1");
// check if those paths are valid directories
if (Files.isDirectory(sourceDir, LinkOption.NOFOLLOW_LINKS)
&& Files.isDirectory(destinationDir, LinkOption.NOFOLLOW_LINKS)) {
// if they are, stream the content of the source directory
try (DirectoryStream<Path> ds = Files.newDirectoryStream(sourceDir)) {
// handle each file in that stream
for (Path fso : ds) {
/*
* copy it to the destination,
* that means resolving the file name to the destination directory
*/
Files.move(fso, destinationDir.resolve(fso.getFileName().toString()));
}
}
}
}
您可以添加更多检查,例如检查目录是否可读以及是否实际存在。我只是在这里检查一个目录,以显示 Files
class.