【问题标题】:Download something to appdata下载一些东西到appdata
【发布时间】:2014-12-07 15:35:41
【问题描述】:

我有一个下载文件(jar 文件)的 java 程序。 我想把它下载到用户的 appdata 文件夹中。 我该怎么做? 我试过这个:

private static String myClient = System.getProperty("user.home")+"/AppData/Roaming";

但这说明:

java.io.FileNotFoundException: C:\Users\Ruud\AppData\Roaming (Access denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
    at Main.main(Main.java:108)

我怎样才能做到这一点?

【问题讨论】:

  • 如果我正确理解异常,你的程序是不允许写入AppData/Roaming文件夹的。您需要授予程序对该文件夹的写入权限。
  • 尝试改为写入System.getenv("appdata")
  • Burkhard 我已经知道了,但是对于响应是 ty。 @msrd0 我现在就这样做了。它看起来像这样:private static String myClient = System.getenv("appdata");
  • 我把它修好了,这是因为我必须更改代码中的某些内容。我怎样才能将此标记为已解决?

标签: java


【解决方案1】:
  1. 这可能是由于 windows 文件夹 'AppData' 上的 Hidden 属性而发生的 尝试清除 'AppData' 文件夹的隐藏属性。

    检查Modify a hidden file in Java 以解决此类隐藏问题。

您可以使用Runtime.getRuntime().exec("attrib -H myFile.txt");清除隐藏属性。

  1. 这可能是由于文件夹的权限问题造成的。尝试为用户分配文件夹写入权限。

【讨论】:

  • 如何将它用于 appdata 文件夹?像这样的东西? Runtime.getRuntime().exec("attrib -H " + System.getenv("appdata"))
【解决方案2】:

确保AppData 目标文件夹存在运行:

new File(System.getProperty("user.home")+"/AppData/").mkdir()

【讨论】:

    猜你喜欢
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2013-10-20
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多