2010-07-20 35 views
1

我正在研究一個既針對mac又針對PC的java應用程序。最近我發現了Windows 7的一個奇怪的問題。我的應用程序有一個項目目錄,並未被卸載程序卸載。最近我卸載了應用程序,然後手動刪除了這個項目目錄,然後重新安裝了應用程序。當我在應用程序中打開一個AWT打開的對話框文件選擇器(該文件選擇器用於打開現有項目)時,在文件選擇器內部我可以看到項目目錄中存在的項目目錄中,我已刪除但不存在於Windows資源管理器中。因此,例如我有一個名爲mojo的項目,該項目位於我已刪除的項目目錄中,但未包含在由我的安裝程序安裝的項目目錄中,但是在通過文件選擇器時,我可以看到它(它在查看時沒有顯示它與探險家)。Windows 7似乎在虛擬目錄中留下不需要的殘餘物

這個問題只發生在Windows 7,所以我認爲這必須與虛擬目錄有關,但這是一個話題,我不熟悉,所以我想知道如果任何人都可以幫我解決這個問題的一點點。

回答

1

默認情況下,Windows Vista和Windows 7都是prevent normal users from writing to the Program Files directory。相反,他們將寫入重定向到用戶的AppData \ Local \ VirtualStore目錄。

如果是這樣的話,最簡單的解決方案是...不要寫入程序文件,而是寫入用戶的主目錄(user.home系統屬性可以有一些幫助)或用戶的位置選擇。

現在,另一個怪癖是Windows常用文件對話框將不會顯示這些文件。我不確定AWT的開放對話框會不會,所以它可能會完全不同。

+0

AWT對話框使用本機操作系統的對話框(這就是爲什麼我們使用它們而不是擺動,即使它們已折舊)。另外,我想我可能會稍微錯誤地解釋這種情況。我的應用程序捆綁了大量預先製作的項目,我談論的mojo項目實際上是一個預先製作的項目,我已經包含在我已經創建的早期版本中,但已被刪除。所以這實際上不需要用戶寫入程序文件目錄。對不起,感謝您的迴應! – Mike2012 2010-07-20 19:51:37

+0

儘管您澄清,我鼓勵您調查文件重定向又名文件虛擬化。嘗試訪問程序文件的未經驗證的代碼實際上可能正在查看AppData下的每個用戶文件夾。當您清除Program Files位置時,您可能未清除虛擬商店。請參閱http://www.gregcons.com/KateBlog/FindingFilesYoureSureYouWrote.aspx獲取屏幕截圖,向您顯示一個在Windows資源管理器中查找虛擬商店位置的按鈕。 – 2010-07-20 23:05:54

1

我認爲這不是虛擬目錄的問題,因爲資源管理器試圖隱藏用戶的「系統」文件,以保護他們免於破壞他們的Windows/System32文件夾等破壞性的事情。個人和作爲程序員,我討厭像手持式那樣!

現在我想起來了,也是還有一些帶有「虛擬」文件夾的魔法。資源管理器向您顯示與真實位置不同的地方的一些文件夾。它將一些windows目錄移動到用戶目錄空間中,反之亦然 - 對不起,我不記得細節。

高度建議獲得一個文件管理器,告訴你真相。我在Win7的資源管理器中錯綜複雜的一個原因是,我幾乎從不使用它。 Total Commander讓你在控制你的目錄樹的同時捆綁了很多有用的工具。沒有它,我永遠不會離開C: