Jacques René Mesrine
Jacques René Mesrine

Reputation: 47805

How to store files in Android's cache directory?

My goal is store temporary files in the directory returned by Context#getCacheDir().

/data/data/my.app/cache/somedir/foo.json

I presume I can just use java.io apis to write files there. But I'm not sure how to set permissions on files there because I would not be able to use Context#MODE_PRIVATE.

The filename parameter to Context#openFileOutput and Context#openFileInput cannot accept input with path delimiters. Thus they are only useful for files created in directory:

/data/data/my.app

Upvotes: 7

Views: 20173

Answers (2)

Kevin Tighe
Kevin Tighe

Reputation: 21161

Each application in Android runs under it's own user account by default, so files created by your app would not be accessible from any other app. Check out bullet point #3 at the top of this page:

http://developer.android.com/guide/topics/fundamentals.html

You could also verify this by running a shell in your emulator/device and looking at the output of ls -l.

Upvotes: 7

CommonsWare
CommonsWare

Reputation: 1006614

But I'm not sure how to set permissions on files there because I would not be able to use Context#MODE_PRIVATE.

AFAIK, they should be private by default.

Upvotes: 5

Related Questions