【问题标题】:Why does listFiles() also list directories as files?为什么 listFiles() 还将目录列为文件?
【发布时间】:2012-08-27 11:47:39
【问题描述】:

似乎方法 listFiles() 还列出了所有目录和威胁所有结果作为目录。

【问题讨论】:

  • 如果您愿意,可以列出他们的名字。
  • 文件或目录的名称无关紧要。您在 unix 中有一个名为 ... 的文件。并且目录可以在 Windows 中具有扩展名。例如“特殊”目录的扩展名为.{ABED-7862368923-ABFE}

标签: java file directory filesystems


【解决方案1】:

文件是filedirectory 路径名abstract 表示。

Java 中File 类中的instance 代表filedirectory

这就是我们可以在同一个文件对象上使用isDirectory()isFile() 来检查它是文件还是目录的原因。

【讨论】:

    【解决方案2】:

    列出文件和目录并没有什么不寻常的。 File.listFiles() API 说:

    返回: 一组抽象路径名,表示由该抽象路径名表示的目录中的文件和目录。数组将是 如果目录为空,则为空。如果此摘要返回 null pathname 不表示目录,或者如果发生 I/O 错误。

    java.io.File 只是文件和目录路径名的抽象表示。有 isFile() 和 isDirectory() 方法可以区分。

    【讨论】:

    • 您引用的文字有误。当我点击您的链接时,我看到以下内容:Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.
    • 好久不见,api变了:D
    【解决方案3】:

    目录是自己的文件,但它是文件系统中的一种特殊文件。

    在java中isDirectory()如果是目录则返回true。

    【讨论】:

    • 从来没有想过目录也是文件,这很混乱;-)
    【解决方案4】:

    File Java 中的对象可以表示文件或目录。可以通过isFile()isDirectory()查看是文件还是目录。

    【讨论】:

    • @Daniel:请不要尝试在评论中发布代码,因为它无法格式化且不可读。如果您需要发布代码,请编辑您的原始帖子并发表评论指导 Eng。到您原来的帖子更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2021-08-29
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 2014-01-09
    相关资源
    最近更新 更多