读书人

怎么获取所有文件路径

发布时间: 2012-06-03 16:59:40 作者: rapoo

如何获取所有文件路径
目录结构:根文件夹D:\emap 下有N个文件夹 如:10001、10002、10003、10004 。。。。
子文件夹下又有n个文件夹,如10001文件夹下有1、2、3、4、5 。。。。
那么10001文件下的1文件夹下有1.txt、2.txt等文件 ,我现在要获得每个子文件夹最底层文件的路径,用java代码如何实现

[解决办法]

Java code
import java.io.File;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class ListFiles {    private static List ListFile(File path) {        // 遍历出的各个文件全路径        String strPath;        List fileList = new ArrayList() ;        File[] files;        files = path.listFiles(); // 得到一个由文件和目录组成的数组;        if (files == null){  //如果文件夹不存在或者没有其他文件目录的话,直接返回            return new ArrayList() ;        }        Arrays.sort(files); // 把数组按升序排列;        for (int i = 0; i < files.length; i++) {            strPath = files[i].toString();            // 进行相关操作            // 递归            if (files[i].isDirectory()) // 测试是否为目录;            {                List tmp = new ArrayList() ;                System.out.println(files[i].getName());                 tmp = ListFile(files[i]);                 fileList.addAll(tmp) ; //把其中子目录的文件加到list中            }else{                fileList.add(files[i]) ;            }        }        return fileList;    }    /**     * @param args     */    public static void main(String[] args) {        File f=new File("F:\\bill\\archive\\afm");        List files = ListFile(f);                    System.out.println("begin...") ;          String name  ="" ;        for (int i =0; i < files.size();i++){            name = ((File)files.get(i)).getName() ;//不要后缀 ,就自己处理一下嘛,太懒啦//            name = name.substring(0, name.lastIndexOf(".")) ;            System.out.println("文件名.后缀: " + name + "---文件名:" + name.substring(0, name.lastIndexOf(".")) );        }        System.out.println("end.") ;    }}
[解决办法]
前几天回答问题写的:

name = ((File)files.get(i)).getName() ;
-->
name = ((File)files.get(i)).getAbsolutePath() ;
[解决办法]
探讨
Java code


import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListFiles {

private static List ListFile(File path) {
……

[解决办法]
1楼的代码稍作修改。
Java code
import java.io.File;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class ListFiles {    private static   List fileList = new ArrayList() ;    private static List ListFile(File path) {        // 遍历出的各个文件全路径        String strPath;        File[] files;        files = path.listFiles(); // 得到一个由文件和目录组成的数组;        if (files == null){  //如果文件夹不存在或者没有其他文件目录的话,直接返回            return new ArrayList() ;        }        Arrays.sort(files); // 把数组按升序排列;        for (int i = 0; i < files.length; i++) {            strPath = files[i].toString();            // 进行相关操作            // 递归            if (files[i].isDirectory()) // 测试是否为目录;            {                fileList.addAll(ListFile(files[i])) ; //把其中子目录的文件加到list中            }else{                fileList.add(files[i]) ;            }        }        return fileList;    } }
[解决办法]
稍作修改。
===========================================
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListFiles {
private static List fileList = new ArrayList() ;

private static List ListFile(File path) {


// 遍历出的各个文件全路径
String strPath;
File[] files;
files = path.listFiles(); // 得到一个由文件和目录组成的数组;
if (files == null){ //如果文件夹不存在或者没有其他文件目录的话,直接返回
return new ArrayList() ;
}
Arrays.sort(files); // 把数组按升序排列;
for (int i = 0; i < files.length; i++) {
strPath = files[i].toString();
// 进行相关操作
// 递归
if (files[i].isDirectory()) // 测试是否为目录;
{
ListFile(files[i]) ;
}else{
fileList.add(files[i]) ;
}

}
return fileList;

}
}


读书人网 >J2EE开发

热点推荐