我正在尝试将文件从一个目的地复制到另一个目的地。我不明白为什么会发生这个错误。任何帮助都是非常感谢的。
public class FileSearch {
public void findFiles(File root) throws IOException {
File[] listOfFiles = root.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
String iName = listOfFiles[i].getName();
if (listOfFiles[i].isFile() && iName.endsWith(".tif")) {
long fileSize = listOfFiles[i].length();
long sizeToKb = fileSize/1024;
File copyDest = new File("C:\\Users\\username\\Desktop\\ZipFiles");
if (fileSize <= 600000) {
System.out.println("|" + listOfFiles[i].getName().toString() + " | Size: " + sizeToKb+" KB");
FileUtils.copyFile(listOfFiles[i], copyDest);
}
} else if (listOfFiles[i].isDirectory()) {
findFiles(listOfFiles[i]);
}
}
}我得到以下错误Exception in thread "main" java.io.IOException: Destination 'C:\Users\username\Desktop\ZipFiles' exists but is a directory
发布于 2016-12-16 00:22:28
File srcFile = new File("/path/to/src/file.txt"); // path + filename
File destDir = new File("/path/to/dest/directory"); // path only
FileUtils.copyFileToDirectory(srcFile, destDir);尝试使用copyFileToDirectory(srcFile, destDir),您必须提供源文件的绝对路径和文件名,以及目标目录的绝对路径。
此外,请确保您具有将文件复制到目标位置的写权限。我一直在Linux系统上,不知道如何实现这一点,同样,你应该有管理员特权的Windows或一些类似的角色,能够写文件。
发布于 2016-12-16 00:22:00
你想要FileUtils.copyFileToDirectory(srcFile, destDir)
为什么会出现这个错误?FileUtils.copyFile用于将文件复制到新位置。从文档中:
此方法将指定源文件的内容复制到指定的目标文件。如果目标文件所在的目录不存在,则创建该目录。如果目标文件存在,则此方法将覆盖它。
在这里,目标存在,但不是一个文件;而是一个目录。您不能使用文件的内容覆盖目录。
https://stackoverflow.com/questions/41168705
复制相似问题