我正在尝试使用 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/