Java遍历目录,java获取指定目录下的所有文件
java中有两种方法可以遍历一个文件夹中的所有文件:一、递归遍历。
通常是开发者能想到的第一个方法。
递归的优点是:
实现相对简单,代码量相对较少,执行效率高。
缺点是:
吃内存多,对硬件要求高。
在线视频教程分享:java在线视频
具体算法如下:
//递归遍历
私有void getDirectory(文件file) {
file flist[]=file . list files();
if(flist==null flist . length==0){
返回0;
}
for(文件f : flist) {
if (f.isDirectory()) {
//这里将列出所有文件夹
system . out . println( Dir== f . getabsolutepath());
get directory(f);
}否则{
//这里将列出所有文件
system . out . println( file== f . getabsolutepath());
}
}
}二、非递归遍历
具体想法:
遍历文件夹时,如果是文件夹,就添加到linkedlist,如果是文件,就列出来。这样就遍历了目录的文件和文件夹,所有的文件夹都保存在linkedlist中,那么剩下的就是和上面的操作一样遍历linkedlist中文件夹的文件了。
如果是文件夹,它将被添加到linkedlist中。当然,每次从列表中取出一个文件夹时,都需要将其从列表中删除。这里使用linkedlist.removeFirst()来读取它,这样每次都会读取列表的第一个元素并从列表中移除。这样,只要linkedlist的状态是isEmty,遍历就完成了。
具体算法如下:
/**
*非递归遍历
* @param文件
* @返回
*/
公共静态LinkedListFile GetDirectory(字符串路径){
File file=新文件(路径);
linked list file Dirlist=new linked list file();//保存要遍历的文件夹列表
linked listfile file list=new linked listfile();
GetOneDir(文件、目录列表、文件列表);//调用遍历文件夹根文件的方法
文件tmp
而(!Dirlist.isEmpty()) {
tmp=(File)dirlist . remove first();
//删除文件夹列表中的第一个文件夹,返回赋给tmp变量的文件夹。
//遍历该文件夹下的所有文件,并将
GetOneDir(tmp,Dirlist,file list);
}
返回文件列表;
}
//遍历指定文件夹根目录中的文件
私有静态void GetOneDir(File file,LinkedListFile Dirlist,
LinkedListFile文件列表){
//每次遍历文件夹时都会调用这个方法
file[]files=file . list files();
if(files==null files . length==0){
返回;
}
for(文件f:文件){
if (f.isDirectory()) {
dirlist . add(f);
}否则{
//此处列出当前文件夹根目录下的所有文件,并添加到fileList列表中。
filelist . add(f);
//system . out . println( file== f);
}
}
}相关文章教程推荐:java入门教程以上是java实现遍历某个目录下(包括子目录)所有文件的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。