2013-03-20 44 views
2

我打算使用javaFX在C:\ Program Files文件夾中創建一個文件,但它顯示我拒絕訪問的錯誤。JavaFx:java.io.FileNotFoundException(訪問被拒絕)

這是代碼示例。

FileWriter fstream = new FileWriter("C:\\Program Files (x86)\\My Folder\\my_file.txt"); 
BufferedWriter out = new BufferedWriter(fstream); 
out.write("Hello!"); 

這是我發現在運行應用程序的錯誤。

java.io.FileNotFoundException: C:\Program Files (x86)\My Folder\my_file.txt (Access is denied) 
    at java.io.FileOutputStream.open(Native Method) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:212) 
    at java.io.FileOutputStream.<init>(FileOutputStream.java:104) 
    at java.io.FileWriter.<init>(FileWriter.java:63) 

我不知道如何讓我的應用程序具有在指定位置創建文件所需的所有權限。請給我足夠的代碼和信息。

+0

嗨,可能你可以嘗試到另一個位置,如「我的文檔」。它有效嗎?你使用什麼版本的Windows? XP?贏7?贏8?如何使用Windows資源管理器手動創建文件? – 2013-03-20 05:53:22

+0

檢查您是否有必要在指定位置創建文件。寫入作者'out.flush();之後添加刷新內容。 fstream.close();'。這個給定的代碼應該可以工作。 – Meherzad 2013-03-20 05:59:13

+0

@DanielRobertus,我想使用安裝應用程序的目錄。我在win7中發現這個錯誤,但我需要爲所有操作系統(Mac和Windows) – 2013-03-20 06:32:30

回答

1

如果您還沒有明確禁用UAC,您將無法寫入Program Files。操作系統將阻止它保護您的系統。

+0

無論如何,以編程方式做它,可能只適用於你的應用程序? – 2013-03-20 06:18:04

+1

@Jim Garrison:它會工作嗎?請告訴我該怎麼做? – 2013-03-20 06:35:07

+0

不,禁用UAC需要管理員干預。這是UAC的重點。在Linux系統上,除非您擁有root用戶權限,否則無法寫入'/ bin'。這同樣適用於Win7及更高版本。 – 2013-03-20 20:24:08