运用Java遍历文件夹的方法总结
来源:互联网 发布:工程网络计划gert 编辑:程序博客网 时间:2024/04/29 10:57
一般遍历文件效率较高的都是采用递归算法执行的,下面的是简单的递归调用实现文件遍历:
package com.Interator;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class InteratorFile {
private static List list=new ArrayList();
public static void main(String[] args) {
// TODO Auto-generated method stub
InteratorFile iFile=new InteratorFile();
File file=new File("E://war3");
iFile.findFile(file,0);
}
public void findFile(File file,int j){//传参数j的目的主要是体现文件的层次。
File[] files=file.listFiles();
if(files==null){
return;
}
else{
for (int i=0;i<files.length;i++){
if(files[i].isDirectory()){
findFile(files[i].getAbsoluteFile(),j++);
}
else{
String path=files[i].getAbsolutePath();
for(int k=0;k<j;k++){
System.out.print("+");
}
System.out.println(path);
list.add(files[i].getAbsolutePath());
}
}
}
}
}
一部分运行结果:
E:/war3/Warcraft III/amai_2.45b/AMAI Debug Version.exe
E:/war3/Warcraft III/amai_2.45b/AMAI vs AI.exe
E:/war3/Warcraft III/amai_2.45b/AMAI_TFT.exe
+E:/war3/Warcraft III/blizzard.ax
+E:/war3/Warcraft III/bncache.dat
+E:/war3/Warcraft III/BNUpdate.exe
+E:/war3/Warcraft III/bnupdate.log
+E:/war3/Warcraft III/Campaigns/DemoCampaign.w3n
++E:/war3/Warcraft III/CustomKeyInfo.txt
++E:/war3/Warcraft III/CustomKeysSample.txt
另一种就是不用递归算法,这种方式经测试要低于递归算法,实现如下:
package com.text3;
import java.io.File;
import java.util.LinkedList;
public class findFile {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedList list=new LinkedList();
File file=new File("E://war3");
File [] files=file.listFiles();
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
list.add(files[i]);
}
else{
System.out.println(files[i].getAbsolutePath());
}
}
File temp;
while(!list.isEmpty()){
temp=(File)list.removeFirst();
int j=0;
if(temp.isDirectory()){
files=temp.listFiles();
if(files!=null){
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){
list.add(files[i]);
j++;
}
else{
for(int k=0;k<j;k++){
System.out.print("+");
}
System.out.println(files[i].getAbsolutePath());
}
}
}
else{
continue;
}
}
else{
System.out.println(temp.getAbsolutePath());
}
}
}
}
一部分运行结果:
+E:/war3/Warcraft III/bncache.dat
+E:/war3/Warcraft III/BNUpdate.exe
+E:/war3/Warcraft III/bnupdate.log
++E:/war3/Warcraft III/CustomKeyInfo.txt
++E:/war3/Warcraft III/CustomKeysSample.txt
++++E:/war3/Warcraft III/Frozen Throne.exe
++++E:/war3/Warcraft III/Game.dll
++++E:/war3/Warcraft III/ijl15.dll
++++E:/war3/Warcraft III/INSTALL.LOG
+++++++E:/war3/Warcraft III/Mss32.dll
+++++++++E:/war3/Warcraft III/replays.ico
- 运用Java遍历文件夹的方法总结
- 运用Java遍历文件夹的方法
- 总结一下java遍历文件夹的方法!
- Java遍历文件夹的2种方法:
- Java遍历文件夹的2种方法
- Java遍历文件夹的2种方法
- java遍历文件夹的两种方法
- Java遍历文件夹的2种方法
- Java遍历文件夹的2种方法
- Java 遍历文件夹的2种方法
- Java遍历文件夹的两种方法
- Java遍历文件夹的2种方法:
- Java遍历文件夹的2种方法
- Java遍历文件夹的2种方法:
- 文件夹遍历的方法
- JAVA 嵌套目录遍历方法 遍历文件夹 嵌套遍历方法
- Java中遍历文件夹的2种方法的比较
- Java中遍历文件夹的2种方法
- Tooltip:利用javascript模拟实现Tooltip,以便提供友好的提示信息
- 程序员资格
- 前言
- Oracle的Case语句
- 简单易用的工作流设计方案
- 运用Java遍历文件夹的方法总结
- 第五课 面向对象编程(三)
- 将sprite,textField加入flex项目中。Container.rawChildren
- 头文件
- 2009年6月13日(热烈庆贺我的博客开通)
- 一切尽在自动中(一),sqlserver “利用bcp方式导出数据FTP上传”
- 存储器概述
- jsp题目
- 七田英语学习法