web-dev-qa-db-ja.com

AndroidでのgetDirとgetFilesDirの違いは何ですか?

アプリの内部ストレージに画像を保存して、非公開にします。だから私は少し調べて、ディレクトリを取得する2つの方法を見ました。

1. getDir の場合:

File dir = getDir(Environment.DIRECTORY_PICTURES, Context.MODE_PRIVATE);

2. getFilesDir の場合:

File dir = getFilesDir();

どちらがベストですか?どちらが内部ストレージの場所を返しますか?

ファイルを書き込む方法は、ディレクトリを取得する方法に依存しますか? Androidにファイルを書き込む方法はたくさんあるので、少し迷っています。

28
cleroo

getFilesDir()は、アプリケーション専用のディレクトリにFileオブジェクトを返します。 openFileOutput(String, int)を使用すると、書き込むデータはこのディレクトリに直接保存され、他のアプリケーションからアクセスできなくなります。アプリケーションファイルを保持します。

getDir()を使用すると、内部メモリに任意のファイルまたはディレクトリを作成できます。作成したモードに応じて、他のアプリケーションからもアクセスできます。 openFileOutput(String, int)はこの出力では機能しないため、このディレクトリまたはファイルを処理するには、ファイルを読み書きする他の手段を使用する必要があります。これは、アプリケーションでのみ使用されるファイル以外のカスタムファイルの作成に使用されます。

34
Erol