如何使用Java将某个文件夹下的所有文件名添加到arraylist

时间:2017-06-07 02:44:54

标签: java arraylist

到目前为止,我有这么多

 import java.io.File;
 import java.io.FilenameFilter;
 import java.util.ArrayList;
 import java.util.Arrays;

 import org.pdfbox.util.Splitter;
 public class fileName {
     public static void main(String args[]){
         File file = new File("/Users/apple/Desktop/");
         String[] directories = file.list(new FilenameFilter(){

             @Override
             public boolean accept(File current, String name) {
                return new File(current, name).isDirectory();
             }
         });
 System.out.println(Arrays.toString(directories));
 ArrayList<String[]>SSOList = new ArrayList<String[]>();
     }
 }

它打印我桌面上所有文件的名称,但我想将它们添加到arraylist。我怎么做?

3 个答案:

答案 0 :(得分:1)

这很容易。您可以按如下方式使用递归:

 private static void read(final File folder)  {

    for (final File fileEntry : folder.listFiles()) {
        if (fileEntry.isDirectory()) {
            read(fileEntry);
        } else {
       //Do something
            }
    }
}

答案 1 :(得分:1)

有很多方法可以在ArrayList中获取文件名:

  1. 使用Arrays.asList()方法:
  2. ArrayList<String> SSOList = new ArrayList<String>(Arrays.asList(directories));

    1. 使用Collections实用程序类allAll方法:

      List<String> SSOList = new ArrayList<String>(directories.length); Collections.addAll(SSOList , directories);

    2. 再次遍历目录数组并将每个值添加到ArrayList SSOList。

    3. 请记住,在获取目录数组中的值后,这些操作将完成。

答案 2 :(得分:0)

ArrayList<String> SSOList =  new ArrayList<String>(Arrays.asList(directories))

或者您可以使用:

Collections.addAll(SSOList, directories);

如果SSOList是您希望存储文件的ArrayList的名称,我认为您需要将其更改为字符串的数组列表而不是字符串数组的数组列表:

List<String>SSOList = new ArrayList<String>();