2017-02-24 56 views
0

在我的應用程序中,我將臨時文件保存到我的應用程序緩存文件夾。我通過這種方法獲取的緩存目錄的名稱:問題與Android中的緩存目錄名稱

context.getCacheDir(); 

它返回我這樣的路徑:/data/user/0/my.app.packagename 可是後來,當我試圖讓名我的緩存文件的父目錄通過此方法 - file.getParent();我得到完全不同的路徑緩存目錄,在我的情況下,這樣的:/data/data/my.app-packagename

所以我只是想知道爲什麼會這樣,爲什麼getParent()不返回相同的路徑爲context.getCacheDir()

+0

你能提供源代碼(片段)嗎? –

回答

3

行爲是正確的,在技術上它是一樣的。 如果您通過adb shell連接到您的android設備並進入/ data/user /並運行'll'命令,您將看到文件夾0只是一個到/ data/data /的符號鏈接。

[email protected]:/data/user # ll 
lrwxrwxrwx root  root    1970-01-01 01:00 0 -> /data/data/ 

如果您不知道這意味着什麼,請閱讀symbolic links

所以沒有問題,你可以相信android它們是一樣的。

+0

謝謝)在我的情況下,我試圖檢查我的文件在緩存中。我通過比較兩個字符串來完成它,比如file.getParent()。startsWith(context.getCacheDir())。而且由於路徑中有0個字符,我總是被誤認爲是假的) – Fedor