【问题标题】:get all absolute paths of files under a given folder获取给定文件夹下文件的所有绝对路径
【发布时间】:2013-08-28 23:02:45
【问题描述】:

我需要在内存中保存给定目录下文件名的所有绝对路径。

myDirectory.list() - 仅检索文件名的 String[](不包括它们的绝对路径)。

不想使用文件对象,因为它消耗更多内存。

最后一件事 - 我可以使用 apache 集合等(但没有发现任何有用的东西)。

【问题讨论】:

    标签: java list java-7 apache-commons absolute-path


    【解决方案1】:
    String directory = <your_directory>;
    File[] files = new File(directory).listFiles();
    for(File file : files){
      if(file.isFile()){
        System.out.println(file.getAbsolutePath());
      }
    }
    

    这行得通,当你说你不想使用 File 对象时,我不得不说我很困惑,但我想不管什么都行。

    【讨论】:

    • 感谢感谢。使用 File 对象比仅保存路径字符串要昂贵得多。案例我将处理包含 100K 个文件的文件夹,我担心内存不足等。所以 - 我正在寻找一个巧妙的解决方案来获取文件夹中所有绝对文件路径的 String[]
    • 如果您已经知道文件的根路径和相对路径,并且您不愿意执行另一次迭代来连接这些字符串,并且您也不愿意使用 File 对象因为害怕如果内存不足,您可能应该将数组分成更小的数组,并按照提供的步骤分别处理它们。
    【解决方案2】:

    myDirectory 不是保存所有这些文件的目录吗? 如果是这样,只需将myDirectory 中的路径与数组myDirectory.list() 返回的每个单元格结合起来。

    【讨论】:

    • 谢谢。你的意思是 - 在 MyDirectory.list() 上进行另一个迭代并将其组合到一个新的 String[] ?有没有开箱即用的东西?
    • myDirectory 是什么类型?
    • 我在这里很困惑。 File 对象如何包含有关目录的信息?
    • 文件和目录在Java中不是表示为文件对象吗? ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2015-09-09
    相关资源
    最近更新 更多