我想使用 apache commons lib 列出当前目录下的所有文件,但排除子目录及其子目录中的所有文件。
例如 :如果我当前目录是 -- A 及其子目录为 B, C ,D
B 的子目录为 b1,b2 (b1 的子目录为 b12),C 的子目录为 c1 , c2...
现在我想列出 C,c1,c2, D 中的所有文件(不包括 B , b1 ,b12 , b2 )
任何帮助将不胜感激!
使用org.apache.commons.io.FileFilter,有一个好例子 http://commons.apache.org/proper/commons-io/javadocs/api-release/index.html?org/apache/commons/io/filefilter/package-summary.html关于如何在 JavaDoc 中使用它。
例如我有一个类似的目录结构:
/tmp/testFilter/A
/tmp/testFilter/B
/tmp/testFilter/C/c1
/tmp/testFilter/C/c2
/tmp/testFilter/D/d1
然后我可以使用以下代码仅列出 C 和 D 下的文件:
public class FileLister {
public static void main(String args[]) {
File dir = new File("/tmp/testFilter");
String[] files = dir.list(
new NotFileFilter(
new OrFileFilter(
new PrefixFileFilter("A"),
new PrefixFileFilter("B")
)
)
);
listFiles(dir, files);
}
private static void listFiles(File rootDir, String[] files) {
for (String fileName: files) {
File fileOrDir = new File(rootDir, fileName);
if (fileOrDir.isDirectory()) {
listFiles(fileOrDir, fileOrDir.list());
} else {
System.out.println(fileOrDir);
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)