Возврат списка файлов в Main Method для дальнейшей обработки файлов

1

Программа возвращает список файлов в file[] fList каталога 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
Лучший ответ

попробуйте эту программу с изменениями, указанными в комментариях, которые она работает.

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());
  }

}
  • 0
    Спросите Thakare .. Это работает, но .. в этом есть 2 программы. public File [] listf (String directoryName) и public String ListFile (String files) для комментариев любого из кода .. программы .. файла .. как бы то ни было, у меня есть только XML-файл в моем каталоге .. Предложить изменения, plzz
  • 0
    Да, я просто хочу список XML-файлов в методе Main.
Показать ещё 1 комментарий
0

Вы пытаетесь получить доступ к методу экземпляра из static контекста.

У вас есть два (базовых) варианта.

  1. Создайте экземпляр класса, в котором находится этот метод, и получите доступ к этому методу через экземпляр или
  2. Сделать метод static, например, public static File[] listf(String directoryName) {
0

Попробуйте загрузить файлы, используя абсолютный путь. Например: "D:\Folder1\Folder2". Кроме того, вместо использования "\" используйте File.Separator.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню