【问题标题】:How do I provide a file path in Mac OS X while creating a file in Java?在 Java 中创建文件时,如何在 Mac OS X 中提供文件路径?
【发布时间】:2015-05-08 09:49:02
【问题描述】:
File f = new File("C:\\Temp\\Example.txt");
f.createNewFile();

执行时,将在Temp 文件夹中创建一个名为“Example.txt”的新文件。如何在 Mac OS X 中提供文件路径?

我尝试提供:

File f = new File("\\Users\\pavankumar\\Desktop\\Testing\\Java.txt");
f.createNewFile();

但这对我不起作用。

【问题讨论】:

  • 任何使用 MAC OSX 的人请在下方评论..

标签: java macos file creation


【解决方案1】:

这里必须使用正斜杠“/”来获取文件路径。 使用:

File f = new File("/Users/pavankumar/Desktop/Testing/Java.txt");
f.createNewFile();

【讨论】:

    【解决方案2】:

    请使用 File.separator 独立于操作系统:

    String home = System.getProperty("user.home");
    File f = new File(home + File.separator + "Desktop" + File.separator + "Testing" + File.separator + "Java.txt");
    

    或者使用 org.apache.commons.io.FilenameUtils.normalize:

    File f = new File(FileNameUtils.normalize(home + "/Desktop/Testing/Java.txt"));
    

    两者都可以使用(第二个选项需要库)

    【讨论】:

    • 啊,是的。 System.getProperty("user.home") 是正确的。更新了答案。
    • 最新的commons.io依赖是FilenameUtils.normalize(String filename)。
    【解决方案3】:

    在 Linux、Mac OS X 和其他 *nix 版本中,文件夹分隔符是 / 而不是 \,因此无需转义任何内容,some/path/of/folders。

    此外,您可以将/tmp 文件夹用于您的临时文件。

    最后,在 *nix 系统上,主目录通常由 ~ 表示或在环境变量 HOME 中。

    【讨论】:

      【解决方案4】:

      有一个File.separator 与系统相关的常量,您应该使用它来为您的 Java 代码提供一些可移植性。

      【讨论】:

        【解决方案5】:

        对于来自用户目录的 macos 中的相对文件路径,您可以使用 $Home。

        【讨论】:

        • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
        【解决方案6】:

        在 Mac OS 中这是以以下方式工作的,请尝试使用 File f = new File("/Users/bsingh/Desktop/Write/myTextFile.txt");

        【讨论】:

        • 这已经在其他答案中提到了。 在回答已有答案的旧问题时,请确保提供新颖的解决方案或比现有答案更好的解释。
        猜你喜欢
        • 2022-11-29
        • 2014-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-11
        • 2012-03-07
        • 2013-04-19
        • 2016-12-27
        相关资源
        最近更新 更多