2017-02-24 2 views
0

In meiner App speichern ich temporäre Dateien in meinem App-Cache-Ordner. Ich erhalte den Namen des Cache-Verzeichnis über diese Methode:Problem mit dem Namen des Cache-Verzeichnisses in Android

context.getCacheDir(); 

Es gibt mir einen solchen Pfad: /data/user/0/my.app.packagename Aber später, wenn ich versuche, Namen zu erhalten des übergeordneten Verzeichnisses meiner Cachedatei über diese Methode - file.getParent(); Ich erhalte absolut anderen Pfad Cache-Verzeichnis, das in meinem Fall: /data/data/my.app-packagename

So bin ich nur fragen, warum dies geschieht, warum getParent() nicht die gleichen zurückzugibt Pfad als context.getCacheDir()?

+0

Können Sie den Quellcode (Fragment) angeben? –

Antwort

3

Das Verhalten ist korrekt, technisch ist es das gleiche. Wenn Sie über adb shell eine Verbindung zu Ihrem Android-Gerät herstellen und in/data/user/den Befehl 'll' ausführen, sehen Sie, dass der Ordner 0 nur eine symbolische Verbindung zu/data/data/ist.

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

Wenn Sie nicht wissen, was das bedeutet, auf symbolic links nachlesen.

So gibt es kein Problem, und Sie können android vertrauen, dass sie gleich sind.

+0

Danke) In meinem Fall versuchte ich zu überprüfen, dass meine Datei im Cache ist. Ich habe es getan, indem ich zwei Strings verglichen habe, zB file.getParent(). StartsWith (context.getCacheDir()). Und ich wurde immer falsch, wegen 0 Zeichen im Pfad) – Fedor

Verwandte Themen