【问题标题】:How do I provide a file path in Mac OS X while creating a file in Java?在 Java 中创建文件时如何在 Mac OS X 中提供文件路径?
【发布时间】:2022-11-29 06:00:52
【问题描述】:
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");

        【讨论】:

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