Добавление имен файлов в список массивов в Java - PullRequest
4 голосов
/ 28 марта 2010

Мне нужно загрузить содержимое имен папок в имеющийся у меня архив, но я не уверен, как это сделать.

Чтобы представить это в перспективе, у меня есть папка с One.txt, Two.txt, Three.txt и т. Д. Я хочу иметь возможность загрузить этот список в массив списков, чтобы, если бы я проверял список, его содержимое быть:

arraylist [0] = Один

arraylist [1] = Два

arraylist [3] = Три

Если бы кто-нибудь мог дать мне какое-либо представление об этом, это было бы очень ценно.

Ответы [ 6 ]

7 голосов
/ 28 марта 2010

Вот решение, которое использует java.io.File.list(FilenameFilter).Сохраняет суффикс .txt;Вы можете легко раздеть их, если вам действительно нужно.

File dir = new File(".");
List<String> list = Arrays.asList(dir.list(
   new FilenameFilter() {
      @Override public boolean accept(File dir, String name) {
         return name.endsWith(".txt");
      }
   }
));
System.out.println(list);
2 голосов
/ 28 марта 2010
File dir = new File("/some/path/name");
List<String> list = new ArrayList<String>();
if (dir.isDirectory()) {
  String[] files = dir.list();
  Pattern p = Pattern.compile("^(.*?)\\.txt$");
  for (String file : files) {
    Matcher m = p.matcher(file);
    if (m.matches()) {
      list.add(m.group(1));
    }
  }
}
1 голос
/ 28 марта 2010

Вы можете попробовать с

File folder = new File("myfolder");

if (folder.isDirectory())
{
  // you can get all the names
  String[] fileNames = folder.list();

  // you can get directly files objects
  File[] files = folder.listFiles();
}
0 голосов
/ 08 апреля 2013

Вот мой ответ, я использовал это раньше лично, чтобы получить все имена файлов,
для использования в функции загрузки в одной из моих игр.

  public void getFiles(String path){
            //Put filenames in arraylist<string>
        File dir = new File(path);
        ArrayList<String> filenames = new ArrayList<String>();
        for(File file : dir.listFiles()){
            savefiles.add(file.getName());
        }
            //Check if the files are in the arraylist
        for (int i = 0; i < savefiles.size(); i++){
            String s = savefiles.get(i);
            System.out.println("File "+i+" : "+s);
        }
        System.out.println("\n");
    }


Я надеюсь, что это могло быть вам полезно C: - Объятия поднялись

0 голосов
/ 28 марта 2010

Посмотрите на java.io. Файл, который дает вам весь контроль, который вам может понадобиться. Вот URL для этого http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html

0 голосов
/ 28 марта 2010

См. API Jave File, в частности, list () .

File my_dir = new File("DirectoryName");
assert(my_dir.exists()); // the directory exists
assert(my_dir.isDirectory()); // and is actually a directory

String[] filenames_in_dir = my_dir.list();

Теперь filenames_in_dir - это массив всех имен файлов, что почти точно то, что вы хотите.

Если вы хотите удалить расширения из отдельных имен файлов, это базовая обработка строк - переберите имена файлов и позаботьтесь о каждом.

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