Получение имен файлов из массива String - PullRequest
0 голосов
/ 13 марта 2012

Я не уверен, правильно ли я задал вопрос на 100%, но здесь он идет: я получил этот код:

File root = Environment.getExternalStorageDirectory();
File saveFolder= new File(Root, "Save");

        String[] files=saveFolder.list(
           new FilenameFilter() {
               public boolean accept(File dir, String name) {
               //define here you filter condition for every single file
                   return name.startsWith("1_");

               }
           });

        if(files.length>0) {
            System.out.println("FOUND!");
            System.out.println("Files length = "+files.length);
        } else {
            System.out.println("NOT FOUND!");
        }

Я получил 2 файла, которые начинаются с "1_", println такжепоказывает, что я получил 2 файла.Но как я могу напечатать или увидеть имена файлов этих двух файлов после логического значения?

Так что-то вроде (между другими System.out.println):

System.out.println("File names = "+files.names);

Ответы [ 6 ]

5 голосов
/ 13 марта 2012

Цикл по массиву:

String[] files=SaveFolder.list(...);
for (String name : files) {
    System.out.println("File name: " + name);
}

Обратите внимание, что соглашение об именовании переменных должно начинаться с нижнего регистра.

1 голос
/ 13 марта 2012

Добавьте код в блок if:

if(files.length>0) {
   System.out.println("FOUND!");
   System.out.println("Files length = "+files.length);
   // next lines print the filenames
   for (String fileName:files)
        System.out.println(fileName);
}
1 голос
/ 13 марта 2012

Используйте Arrays.asList (), если вы хотите быстро распечатать примитивный массив

System.out.println(Arrays.asList(files));
1 голос
/ 13 марта 2012

заменить

 public boolean accept(File dir, String Name) {
           //define here you filter condition for every single file
               return Name.startsWith("1_");

           }

на это:

 public boolean accept(File dir, String Name) {
           //define here you filter condition for every single file
               boolean b = Name.startsWith("1_");
               if (b)
                     System.out.println(Name);
               return b;

           }
0 голосов
/ 09 апреля 2013

Это то, что я использую лично, если мне нужны имена файлов для загрузки в функцию загрузки.

public void getFiles(String path){
        //Store the filesnames to ArryList<String>
        File dir = new File(path);
            ArrayList<String> savefiles = new ArrayList<String>();
        for(File file : dir.listFiles()){
            savefiles.add(file.getName());
        }
        //Check if the filenames or so to say read them
        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 голосов
/ 13 марта 2012

Вы можете использовать

file.getName(); // for the name of the file
file.getAbsolutePath(); for the full path of the file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...