Как получить все текстовые файлы из одной папки, используя Java? - PullRequest
6 голосов
/ 19 января 2012

Мне нужно прочитать все файлы ".txt" из папки (пользователю необходимо выбрать эту папку).

Посоветуйте, пожалуйста, как это сделать?

Ответы [ 5 ]

11 голосов
/ 19 января 2012

вы можете использовать filenamefilter класс, это довольно простое использование public static void main (String [] args) выдает IOException {

    File f = new File("c:\\mydirectory");

    FilenameFilter textFilter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return name.toLowerCase().endsWith(".txt");
        }
    };

    File[] files = f.listFiles(textFilter);
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.print("directory:");
        } else {
            System.out.print("     file:");
        }
        System.out.println(file.getCanonicalPath());
    }

}

просто создайте filenamefilter экземпляр метода принятия переопределения, как вы хотите

2 голосов
/ 19 января 2012

Если у вас уже есть каталог, вы можете сделать что-то вроде этого:

File directory= new File("user submits directory");
for (File file : directory.listFiles())
{
   if (FileNameUtils.getExtension(file.getName()).equals("txt"))
   {
       //dom something here.
   }
}

FileNameUtils.getExtension () можно найти здесь .

Редактировать: То, что вы, похоже, хотите сделать, это получить доступ к файловой структуре из веб-браузера.Согласно этому предыдущему сообщению SO, то, что вы хотите сделать, невозможно из-за соображений безопасности.

1 голос
/ 19 января 2012

предоставляет пользователю текстовое поле для ввода пути к каталогу.

File userDir=new File("userEnteredDir");
File[] allfiles=useDir.listFiles();

Выполните итерацию allFiles для фильтрации файлов .txt с помощью метода getExtension ()

1 голос
/ 19 января 2012

Я написал следующую функцию, которая будет искать все текстовые файлы в каталоге.

public static void parseDir(File dirPath)
    {

        File files[] = null;
        if(dirPath.isDirectory())
        {
            files = dirPath.listFiles();
            for(File dirFiles:files)
            {

                if(dirFiles.isDirectory())
                {
                    parseDir(dirFiles);
                }
                else
                {
                    if(dirFiles.getName().endsWith(".txt"))
                    {
                        //do your processing here....
                    }
                }
            }

        }
        else
        {
            if(dirPath.getName().endsWith(".txt"))
            {
                //do your processing here....
            }
        }

    }

посмотреть, поможет ли это.

1 голос
/ 19 января 2012

Вам нужно прочитать каталог и выполнить итерации внутри него.

это больше вопрос о доступе Java к файловым системам, чем о MVC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...