簡體   English   中英

用Java修改隱藏文件

[英]Modify a hidden file in Java

我有一個用戶下載的文件,然后我在java中執行一個命令來隱藏文件:

Runtime.getRuntime().exec("attrib +H myFile.txt");

現在我需要訪問該隱藏文件,但我得到了

java.io.FileNotFoundException: myFile.txt (Access is denied)

如果文件未被隱藏,則此方法有效,但文件需要隱藏,因此用戶不會修改它。 那么我該如何修改隱藏文件呢? 有沒有辦法在Java中這樣做?

謝謝你的想法。

我同意Dolph,但您也可以考慮使用隱藏文件的替代方法。 首先,您現在依賴於(Windows)“attrib”命令。 其次,僅僅因為文件被標記為隱藏並不意味着用戶無法看到或修改它(我將我的機器設置為始終顯示隱藏文件)。 作為替代方案,您可以考慮使用標准目錄位置和filenaming約定。 例如,在Windows中,放置應用程序數據的標准位置位於“應用程序數據”文件夾中。 您可以使用系統屬性“user.home”找到此文件夾:

System.out.println(System.getProperty("user.home"));
//prints out something like C:\Documents And Settings\smithj

您可以使用它創建自己的Application Data文件夾:

//For Windows
File appDataDir = new File(System.getProperty("user.home"), "Application Data\\MyWidgetData");

類似地,在* nix環境中,應用程序通常將其數據保存在主目錄中的.xyz目錄中:

//*nix OSes
System.out.println(System.getProperty("user.home"));
//prints out something like /user/home/smithj
File appDataDir = new File(System.getProperty("user.home"), ".MyWidgetData");

您可以查看屬性os.name以確定您正在運行的環境並基於此構建正確的路徑。

首先取消隱藏文件:

Runtime.getRuntime().exec("attrib -H myFile.txt");
                                  ^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM