我想使用Java和apache org commons的FileUtils类将文件从一个目录复制到另一个目录。
我写了一个快速java程序来测试我的本地系统。这是代码。该文件存在,但将文件复制到另一个目录不起作用。我错过了什么?某处有不正确的语法吗?
import org.apache.commons.io.FileUtils;
import java.io.File;
class MoveFile {
public static void main(String[] args) {
MoveFile myobj = new MoveFile();
myobj.moveTheFile();
}
public void moveTheFile () {
try {
File destDir = new File("C:\\Folder1\\temp2");
File srcFile = new File("C:\\Folder1\\temp\\card.png");
FileUtils.copyFileToDirectory(srcFile, destDir);
} catch(Exception e) {
}
}
}
答案 0 :(得分:10)
复制您的错误,但只有在程序没有写入目标文件夹的权限时才会失败。即使捕获一个throwable和打印堆栈跟踪也没有显示任何信息,并且该方法非常安静...如果该文件夹不存在,则该方法创建它以忽略可能的更正。
检查目标文件夹中的写入权限
答案 1 :(得分:3)
执行吞下异常绝不是一个好主意。在您的异常处理机制中执行e.printstacktrace()
以获取更多信息。由于您未指定任何其他信息,因此首先要考虑的是,如果您使用的是Windows Vista或更高版本,通常在将项目直接放入C:\
目录时会要求您获得管理员同意。
要查看这是否是问题,我建议您在其他目录(例如My Documents
)中对此进行测试,否则请禁用UAC。
答案 2 :(得分:1)
待办事项
destDir.mkdirs();
或
FileUtils.forceMkdir(destDir);
首先创建目录temp2
。