java - 如何使用 FileUtils 的 copyDirectory 继续复制错误(Apache Commons IO 2.4)

标签 java apache-commons-io fileutils

我正在尝试使用 Apache commons io (2.4) 中的 FileUtils 方法“static void copyDirectory(File srcDir, File destDir)”将文件从一个文件夹复制到另一个文件夹,代码如下:

String srcDir  = "/sourceDirectory/examples/";
String destDir = "/tmp/examples/";
try{
    FileUtils.copyDirectory(new File(srcDir), new File(destDir));
} catch (IOException e){
    e.printStackTrace();
}

文件结构如下所示:

examples/                           (read access)
examples/.subdirectory              (NO access)
examples/file1.txt                  (read access)
examples/file2.txt                  (read access)
examples/subdirectory2/file1.txt    (read access)
examples/subdirectory2/file2.txt    (NO access)

问题是,在 srcDir 中有几个文件和一个我无权访问的子目录。 FileUtils.copyDirectory 抛出“java.io.FileNotFoundException:.subdirectory(权限被拒绝)”并中止。

是否可以忽略那些我没有权限的文件,只复制我可以阅读的所有其他文件?

最佳答案

使用 FileFilter 如下:

FileUtils.copyDirectory(new File(srcDir), new File(destDir), new FileFilter() {
    @Override
    public boolean accept(File pathname) {
        return pathname.canRead();
    }
});

参见 javadoc获取更多信息。

关于java - 如何使用 FileUtils 的 copyDirectory 继续复制错误(Apache Commons IO 2.4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931392/

相关文章:

java - 无法使用javax从android使用gmail帐户发送电子邮件

JDialog 中的 javax.swing.Timer 在关闭 JDialog 时不会停止

java - Java中带有输入重定向运算符的执行命令

java - Netbeans 无法导入 FileUtils 包?

java - Map<key, List/Set<key定义类型的对象>>

java - 有没有办法组合多个文件过滤器?

java - MacRoman 与 UTF-8

java - 上传图像到 AWS S3 未推送到边缘服务器

java - FileUtils.listFiles 从列表中排除特定的文件扩展名

java - 用Java连接DB2,配置