11

我想使用 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) {
        }
    }

}
4

3 回答 3

10

复制了您的错误,并且仅当程序无权在目标文件夹上写入时才会失败。即使捕获一个可抛出的并打印堆栈跟踪也没有显示任何信息,并且该方法非常安静……如果该文件夹不存在,该方法会创建它,从而忽略可能的更正。

检查目标文件夹中的写入权限

于 2012-02-10T22:23:41.127 回答
3

吞下异常绝不是一个好主意。在您e.printstacktrace()的异常处理机制中执行以获取更多信息。由于您没有指定任何其他信息,因此首先想到的是,如果您使用的是 Windows vista 或更高版本,通常在将项目直接放入C:\目录时会征求您的管理员同意。

要查看这是否是问题所在,我建议您在其他目录中进行测试,例如My Documents禁用 UAC。

于 2012-02-10T22:05:35.000 回答
1

destDir.mkdirs();

或者

FileUtils.forceMkdir(destDir);

首先创建目录temp2

于 2012-02-10T22:22:43.110 回答