2014-12-07 55 views
2

我有一個Java程序下載一個文件(一個jar文件)。 我想要下載到用戶的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) 

我怎樣才能使這項工作?

+0

如果我理解正確的例外,你的程序是不允許應用程序數據/漫遊文件夾來寫。您需要爲該程序提供該文件夾的寫入權限。 – Burkhard 2014-12-07 15:40:08

+0

嘗試寫入'System.getenv(「appdata」)'而不是 – msrd0 2014-12-07 15:46:09

+0

Burkhard我已經知道,但是對於響應而言。 @ msrd0我現在這樣做了。它看起來像這樣: '私有靜態字符串myClient = System.getenv(「appdata」);' – xX4m4zingXx 2014-12-08 18:23:10

回答

2
  1. 這種情況可能是由於隱藏的屬性在Windows文件夾「應用程序數據」 嘗試清除「應用程序數據」文件夾的隱藏屬性。

    檢查Modify a hidden file in Java來解決這樣的隱藏問題。

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

  1. 這可能是由於文件夾的權限問題造成的。嘗試將文件夾寫入權限分配給用戶。
+0

我如何使用這個appdata文件夾? 這樣的事情? 'Runtime.getRuntime()。exec(「attrib -H」+ System.getenv(「appdata」))' – xX4m4zingXx 2014-12-08 18:20:51

0

確保塔的AppData目標文件夾存在運行:

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

我補充說,沒有工作。 Ty爲迴應。 – xX4m4zingXx 2014-12-08 18:24:17