【问题标题】:Access file without filename访问没有文件名的文件
【发布时间】:2016-11-20 06:40:08
【问题描述】:

我在目录中有一个文件夹。我知道,总是只有一个文件,它是一个 .txt 文件。但我不知道文件名。 如何在 Java 中访问它?路径应该是怎样的?

【问题讨论】:

标签: java file directory


【解决方案1】:

您可以打开目录并查看其内容,直到找到该文件:

public static File getTextFileInDirectory(String dirPath) {
    File dir = new File(dirPath);
    for (File f : dir.listFiles()) {
        if (f.isFile() && f.getName().endsWith(".txt")) {
            return f;
        }
    }
    return null;
}

编辑:
根据下面的 cmets,如果可以安全地假设目录中始终有一个文件,并且目录中没有其他内容(例如子目录),则可以大大简化此代码:

public static File getTextFileInDirectory(String dirPath) {
    return new File(dirPath).listFiles()[0];
}

【讨论】:

  • 据说文件夹只包含那个文件,所以可以检查列表是否为空并返回第一个文件
  • @cricket_007 我不确定“总是只有一个文件,它是一个 .txt 文件”的解释。这是否意味着该文件是目录中唯一的东西,或者它是唯一的文件,并且目录也可以包含其他东西(例如,子目录)。
  • 没有别的了!
  • @Tobi123 在这种情况下,我的事情过于复杂,我可以用少得多的代码来做到这一点。请参阅我编辑的答案。
【解决方案2】:

由于您知道目录中只有一个文件,因此您可以获取目录文件的数组,如果存在则返回第一个元素,如果不存在则返回 null。

public static File getFileFromDir(File directory) {
    File[] dirFiles = directory.listFiles();
    return dirFiles.length > 0 ? dirFiles[0] : null;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2011-07-18
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多