2008-11-11 71 views
1

我有一些代碼,有效地做到這一點:的Java File.canWrite()在Vista和超級隱藏文件

File file = new File("C:\\Program Files (x86)\\Something\\fred.txt"); 
System.out.println("file.canWrite() = " + file.canWrite()); 

它打印出真實的。 現在奇怪的是,我可以創建沒有任何例外的文件。此外,另一個程序可以讀取我創建的文件。事情是,在Windows資源管理器中,該文件根本不顯示!

顯示您可能在想的隱藏文件,但不,我已經打開了該選項。

我也發現Vista中的「超級隱藏文件」,所以我已經打開了該選項,我仍然無法看到文件!也許我沒有正確編輯我的註冊表 - 我只能假設這個文件是超級隱藏的 - 還有什麼地方可以呢?

現在的問題是,我創建一個html文件,當我啓動瀏覽器時,它看不到html文件,因爲它是超級隱藏的。

如何防止Java創建超級隱藏文件?這是在JRE 6更新6下運行的。

回答

9

您很可能是文件夾重定向的「受害者」。啓用UAC後,如果您沒有以管理員身份運行程序,則對Program Files的任何寫入都會重定向到其他位置。

你會發現用C文件:\ Users \用戶名< > \應用程序數據\本地\ VirtualStore \ <插入> \ <預期> \ <路徑> \ <這裏>。

正確的修復方法當然是不要先寫入Program Files文件。而是使用用戶主目錄中的某個地方(應該寫入的確切位置取決於應用程序的用途)。

0

我相信更新10可能已經改變了這種行爲。我知道重新實現了許多瀏覽器的東西,更好地與Vista。我不是100%確定,但我建議你看看。