【问题标题】:How to open folder and view properties of folder in Java?如何在 Java 中打开文件夹并查看文件夹的属性?
【发布时间】:2017-03-12 07:20:47
【问题描述】:

为什么File file=new File("folderName"); 不起作用? 文件夹名称和路径有效。对文件运行相同的代码,但对文件夹不运行。

File file=new File("folderName");
if(file.exists()){
 System.out.println("Folder exists");
}
else{
  System.out.println("Folder doesn't exists");
}

对于文件夹 file.exists() 总是返回 false。

我不能在我的作业中使用其他库。

【问题讨论】:

  • 它适用于我的系统。您确定 folderName 与您正在执行的程序位于同一目录中吗?
  • 顺便说一句,你可以只做if(file.exists())检查真是多余的
  • 是的,我确定。我尝试了同一目录中的文件和文件夹。它适用于文件,但不适用于文件夹。我检查了不同的文件夹并处理了文件夹名称中的空格。
  • 所以你的意思是你实际上有一个名为 folderName 的文件夹,或者 folderName 是一个变量,在这种情况下它不应该用引号引起来。
  • 不管你认为什么是正确的......你的代码不工作,它应该是,最可能的问题是你所谓的“正确路径”并不像您认为!让我们看看你正在使用的路径。

标签: java file file-io directory file-handling


【解决方案1】:

这很可能是在错误的地方寻找“folderName”:

File file = new File("folderName");

它使用当前工作目录,它可能与您假设的不同(取决于您的环境、IDE 等)。

您可以使用以下方法轻松调试问题:

System.out.println(file.getAbsolutePath())

顺便说一下,你应该将if(file.exists() == true)简化为if(file.exists())

【讨论】:

  • 这没有帮助,一些问题:folderName 完全(区分大小写)与文件夹的名称相同吗?你用的是什么操作系统?
  • 非常感谢它解决了我的问题。实际上,在生成地址时,文件夹名称之前还有额外的。
【解决方案2】:

您可以查看文件夹管理元数据的所有属性,您可以查阅这些文档here

你有一些方法:

  • 大小(路径)。
  • isDirectory(路径,链接选项)。
  • isRegularFile(Path, LinkOption...)。
  • isSymbolicLink(路径)。
  • isHidden(路径)。
  • get/setLastModifiedTime(Path, LinkOption...)。
  • get/setOwner(Path, LinkOption...)
  • ...

您可以将它们与您的 System.out 方法或其他方法一起使用。您也可以读取一些属性并修改您的文件。

祝你有美好的一天!

【讨论】:

    【解决方案3】:

    您的代码确实应该可以工作,但是如果您明确检查文件夹(目录)是否存在,那么您的 IF/ELSE 条件应该是这样的:

    if(file.exists() && file.isDirectory()) { 
        System.out.println("Folder exists");
    }
    else{
      System.out.println("Folder doesn't exists");
    }
    

    【讨论】:

    • 不,它不起作用。实际上程序说它不存在。
    • 那么..."folderName" 根本不存在。 “文件夹名称”是否应该是一个变量。如果是则去掉引号。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    相关资源
    最近更新 更多