当前位置: 代码迷 >> J2EE >> 怎么获取所有文件路径
  详细解决方案

怎么获取所有文件路径

热度:122   发布时间:2016-04-22 01:21:31.0
如何获取所有文件路径
目录结构:根文件夹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) {
  相关解决方案