将文件列表返回到Main Method以进一步处理文件

时间:2014-03-19 05:08:39

标签: java

程序返回目录file[] fList中的文件列表。我无法将文件列表返回到public static void main(String[]agrs),以便我可以使用每个文件进行解析。

我是java的初学者.. 到目前为止我的代码: -

public class FileList {

    private static final String files = null;
    //Directory path here

    public String ListFile(String files) {
        String path = "/Users/";
        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();
        {
            for (int i = 0; i < listOfFiles.length; i++) {
                if (listOfFiles[i].isFile()) {
                    files = listOfFiles[i].getName();
                    if (files.endsWith(".xml")) {
                        System.out.println(files);
                    }
                }
            }
        }
        return files;
    }

    public static void main(String[] args) {
        FileList fl = new FileList();
        fl.ListFile(files);
    }
}

和方法

public File[] listf(String directoryName) {
        String files = "";
        File directory = new File(directoryName);
        // get all the files from a directory
        File[] fList = directory.listFiles();
        for (int i = 0; i < fList.length; i++) {

            if (fList[i].isFile()) {
                files = fList[i].getName();
                if (files.endsWith(".xml")) {
                    System.out.println(files);
                }
            }
        }

        System.out.println(fList);
        return fList;
    }

3 个答案:

答案 0 :(得分:0)

您尝试从static上下文访问实例方法。

您有两个(基本)选项。

  1. 创建方法所在类的实例,并通过实例或
  2. 访问该方法
  3. 制作方法static,例如public static File[] listf(String directoryName) {

答案 1 :(得分:0)

尝试使用绝对路径加载文件。例如。 &#34; d:\ Folder1中\ FOLDER2&#34 ;.此外,请使用File.Separator

,而不是使用&#34; \&#34;

答案 2 :(得分:0)

尝试使用评论中所述的更改来运行此程序..

import java.io.File;


public class Demo
{

     private static final String files = null;
        //Directory path here

       /* public String ListFile(String files) {
            String path = "My/";//Use pathname like this
            File folder = new File(path);
            File[] listOfFiles = folder.listFiles();
            {
                for (int i = 0; i < listOfFiles.length; i++) {
                    if (listOfFiles[i].isFile()) {
                        files = listOfFiles[i].getName();
                        if (files.endsWith(".xml")) {
                            System.out.println(files);
                        }
                    }
                }
            }
            return files;
        }
    */
    public File[] listf(String directoryName) {
        String files = "";
        File directory = new File(directoryName);
        // get all the files from a directory
        File[] fList = directory.listFiles();
        for (int i = 0; i < fList.length; i++) {

            if (fList[i].isFile()) {
                files = fList[i].getName();
                if (files.endsWith(".xml")) {
                    System.out.println(files);
                }
            }
        }

        //System.out.println(fList);//Not needed
        return fList;
    }




  public static void main (String[] args) {
  File f[]=new File[10];
  f=new Demo().listf("My");
    //new Demo().ListFile(files);//it just prints file names

//for(int i=0;i<f.length;i++)
   // System.out.println(f[i].getName());
  }

}