2017-02-24 8 views
0

私のアプリでは、一時ファイルを自分のアプリケーションキャッシュフォルダに保存しています。私はこの方法でキャッシュディレクトリの名前を取得しています:Androidのキャッシュディレクトリ名の問題

context.getCacheDir(); 

それは私のようなパスを返します。/data/user/0/my.app.packagename しかし、その後、私は名前を取得しようとしていたときに私のキャッシュファイルの親ディレクトリのこのメソッドを介して - file.getParent(); /data/data/my.app-packagenameだから、

getParent()が同じことを返さない理由を私は、なぜこれが起こっている疑問に思って:私はこの私の場合には、キャッシュディレクトリに全く別のパスを取得していますパスをcontext.getCacheDir()としますか?

+0

ソースコード(フラグメント)を提供できますか? –

答えて

3

動作は正確で、技術的には同じです。 adbシェルを介して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をお読みください。

したがって問題はなく、あなたは同じであることをアンドロイドに信じることができます。

+0

ありがとう)私の場合、私のファイルがキャッシュにあることを確認しようとしていました。私はfile.getParent()。startsWith(context.getCacheDir())のような2つの文字列を比較することでそれをやっていました。私はパスに0文字があるので、私はいつも偽を持っています) – Fedor