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

问题描述:

我有这么多至今如何将某个文件夹下添加所有的文件名使用Java

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但我想将它们添加到一个阵列列表。我怎么做?

+1

Javascript!= Java。 (无关标签删除。) – nnnnnn

+1

可能的重复https://*.com/questions/157944/create-arraylist-from-array –

+0

可能重复的[从数组创建ArrayList](https://*.com/questions/ 157944 /从阵列中创建阵列列表) –

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

private static void read(final File folder) { 

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

伟大的解决方案!感谢它 – DylanK

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

,或者您可以使用:

Collections.addAll(SSOList, directories); 

此外,如果SSOList是要存储在文件中的ArrayList的名字,我想你需要将其更改为一个字符串数组列表而不是阵列的字符串列表:

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

有相当多的方式,通过它可以得到的文件名中一个ArrayList:

  1. 使用Arrays.asList()方法:

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

  1. 使用类别工具类allAll方法:

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

  2. 遍历目录阵列再次并添加每个值到ArrayList SSOList。

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

开始=>
+0

完美地工作。谢谢! – DylanK