看代码:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
/***
* 获取指定目录下的所有的文件(不包括文件夹),采用了递归
*
* @param obj
* @return
*/
public static arraylist<file> getlistfiles(object obj) {
file directory = null;
if (obj instanceof file) {
directory = (file) obj;
} else {
directory = new file(obj.tostring());
}
arraylist<file> files = new arraylist<file>();
if (directory.isfile()) {
files.add(directory);
return files;
} else if (directory.isdirectory()) {
file[] filearr = directory.listfiles();
for (int i = 0; i < filearr.length; i++) {
file fileone = filearr[i];
files.addall(getlistfiles(fileone));
}
return files;
}
说明:上述方法采用了递归,所以包含子目录下的子目录中的文件。。。
测试代码:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
@test
public void test_getlistfiles(){
arraylist<file> files=fileutils.getlistfiles("d:\\temp\\a\\a");
systemutil.printfilesfilepath(files);
输出结果:
d:\temp\a\a\divided\merged\oracle学习笔记.doc
d:\temp\a\a\divided\oracle学习笔记.doc_1_3kldv
d:\temp\a\a\divided\oracle学习笔记.doc_2_3kldv
d:\temp\a\a\divided\oracle学习笔记.doc_3_3kldv
d:\temp\a\a\oracle学习笔记.doc
过滤前缀(只是获取指定目录下的文件,没有递归):
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
* @param path
* @param prefixstr
* :前缀名
public static file[] getfilesbypathprefix(file path, final string prefixstr) {
file[] filearr = path.listfiles(new filenamefilter() {
@override
public boolean accept(file dir, string name) {
// system.out.println("prefixstr:"+prefixstr);
if ((valuewidget.isnullorempty(prefixstr) || (dir.isdirectory() && name
.startswith(prefixstr)))) {
return true;
} else {
return false;
}
});
return filearr;
* 前缀名
* @param pathstr
public static file[] getfilesbypathandprefix(string pathstr,
final string prefixstr) {
file path = new file(pathstr);
return getfilesbypathprefix(path, prefixstr);
过滤后缀名(只是获取指定目录下的文件,没有递归):
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
* :后缀名
public static file[] getfilesbypathandsuffix(file path,
final string sufixstr) {
if ((valuewidget.isnullorempty(sufixstr) || (dir.isdirectory() && name
.endswith(sufixstr)))) {
* 后缀名
* @param sufixstr
public static file[] getfilesbypathandsuffix(string pathstr,
return getfilesbypathandsuffix(path, sufixstr);
}