Android内部ストレージを使用してアプリケーションのファイルを保存しました(openFileOutput
を使用)しましたが、そのファイルを削除したいのですが、可能ですか?
File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();
私はこれが少し古いことを知っていますが、 docs 使用するように言っています:
deleteFile("filename");
のではなく:
File.delete();
すでに使用している場合:
getFilesDir();
理にかなっています。
不要になったファイルは常に削除する必要があります。ファイルを削除する最も簡単な方法は、開かれたファイル参照がそれ自体でdelete()を呼び出すことです。
myFile.delete()
;
ファイルが内部ストレージに保存されている場合は、deleteFile()を呼び出して、ファイルの検索と削除をコンテキストに依頼することもできます。
myContext.deleteFile(fileName);
注:ユーザーがアプリをアンインストールすると、Androidシステムは次を削除します。内部ストレージに保存したすべてのファイルgetExternalFilesDir()
を使用して外部ストレージに保存したすべてのファイル。 getCacheDir()
で作成されたすべてのキャッシュファイルを定期的に手動で削除し、不要になった他のファイルも定期的に削除する必要があります。
ソース: http://developer.Android.com/training/basics/data-storage/files.html
フォルダからすべてのファイルを削除する場合は、次の機能を使用します。
private void deleteTempFolder(String dir) {
File myDir = new File(Environment.getExternalStorageDirectory() + "/"+dir);
if (myDir.isDirectory()) {
String[] children = myDir.list();
for (int i = 0; i < children.length; i++) {
new File(myDir, children[i]).delete();
}
}
}
フォルダーはストレージ上に存在する必要があります。そうでない場合は、もう1つの条件を確認できます。
if (myDir.exists() && myDir.isDirectory()) {
//write same defination for it.
}
new File(mUri.toString).delete();
void clearMyFiles() {
File[] files = context.getFilesDir().listFiles();
if(files != null)
for(File file : files) {
file.delete();
}
}
File のdelete
メソッドを使用します