定义了一个包 package fileslist;
该包下有若干个文件,如a.txt,b.java,c.jpg .....
怎样才能枚举这个包下的所有文件名称.

解决方案 »

  1.   

    java.io.File;

    public String[] list()
      

  2.   

    File file =new File("e:\\abc");
        File f[]=file.listFiles();
        System.out.println(f.length);
      

  3.   

    这个只是得到跟目录下的所有文件及文件夹
    要得到某个目录下所有的文件,包括字目录下的文件,需要用递归:
    public class Test {
      private List files=new ArrayList();
      public static void main(String args[]) {
        File file =new File("e:\\abc");
        File f[]=file.listFiles();
        System.out.println(f.length);    Test test=new Test();
        test.getFile(file);
        System.out.println(test.files.size());
      }  public File getFile(File file) {
        File result=null;
        if(file.isDirectory()){
          System.out.println("目录");
          File f[]=file.listFiles();
          for(int i=0;i<f.length;i++){
            files.add(this.getFile(f[i]));
          }
        }else{
          System.out.println("文件");
          result=file;
        }
        return result;
      }
    }
      

  4.   

    解决了
        public void DownloadReports() throws IOException{
    // 把包名字转换成绝对路径
            String name = new String("myapp/report");
            if (!name.startsWith("/")) {
                name = "/" + name;
            }
            name.replaceAll("%20", " ");
            URL url = reports.class.getResource(name);
            //System.out.println(url.getFile().replaceAll("%20", " "));
            File directory = new File(url.getPath().substring(1).replaceAll("%20", " "));
            if (directory.exists()) {
                String[] files = directory.list();
                for (int i = 0; i < files.length; i++) {
                    String classname = files[i];
                    if(files[i].endsWith(".jasper"))
                    {
                        DownloadReports(files[i]);
                    }
                    //System.out.println(classname);
                }
            }
        }