【问题标题】:How to create a folder in a Users Program File directory?如何在用户程序文件目录中创建文件夹?
【发布时间】:2013-04-10 20:55:25
【问题描述】:

如果 Java 中不存在新文件夹,我知道如何创建它。

File directory = new File("path");
directory.mkdir();

是否所有开发人员都使用Program Files 位置为其应用创建文件夹来存储数据?对于使用该应用程序的每个用户,该路径是否始终相同? Java 开发者如何针对 Mac 用户文件路径的差异进行调整?

我还想知道System.getProperty("user.home"); 是否是导航系统以创建文件路径的常用方法?

【问题讨论】:

  • 看到这个问题:stackoverflow.com/questions/6561172/… - 恐怕有点乱。
  • 小心调用mkdir() -- 你必须注意返回值。我更喜欢 Java 7 中较新的 Files.createDirectory()。它可以确保创建目录。
  • 为什么要在 Program Files 中创建文件夹?您是在制作安装程序还是要存储应用程序数据?如果您想存储应用程序数据,不鼓励使用 Program Files 文件夹。请改用应用程序数据 (AppData)。
  • “如何在用户程序文件目录中创建文件夹?” 可以改写为“如何存储用户首选项?”?如果是这样,请启动该应用程序。使用 JWS 并使用 PersistenceService 存储详细信息。

标签: java filepath


【解决方案1】:

对于 32 位电脑上的 32 位程序,或 64 位电脑上的 64 位程序:

System.getenv("ProgramFiles")    

对于 64 位电脑上的 32 位程序:

 System.getenv("ProgramFiles(X86)")

显然,这些仅适用于 Windows 系统..

【讨论】:

    【解决方案2】:

    对于少数将数据保存到本地的独立和 java web 启动应用程序,我不使用程序文件。讨厌它,因为它有空格,而且 windows 可以添加或删除版本的权限。

    相反,我这样做了(我告诉用户它,所以对于一个应用程序来说并不奇怪,我什至打开文件夹,因为有一些用户可编辑的首选项。): 1.如果不尝试创建,请检查c:/apps/sel2in/noteMaker是否存在 2. 如果错误 make d:/apps/.... 3. else use and make one using System.getProperty("user.home")

    使用 mkdirs 以便根据需要创建父文件夹。

    fyi / 在 windows 中的 java 中工作得很好,java 在内部对其进行了更改,并且它比 \ 对我来说更容易输入

    对于 unix,我通常将参数 1 作为属性文件的路径,并具有保存其他文件和其他首选项的文件夹。

    【讨论】:

    • 很棒的反应!我很欣赏 / 的提示。我对Java很陌生。如果一切都失败了,我想我会采用 if/else 创建语句诉诸 user.home 的方法。
    • 如果文件夹不存在等或c:/不存在或没有写权限,需要仔细检查错误。最好在 try catch 周围调用函数,如果路径为 null 或无法读取 (fileObject.canRead()) 标记正确,则最终使用默认值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2014-05-11
    • 2018-12-31
    • 1970-01-01
    • 2011-05-05
    相关资源
    最近更新 更多