我已经使用Android内部存储为我的应用程序保存文件(使用openFileOutput
)但我想删除该文件,是否可能以及如何?
答案 0 :(得分:89)
File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();
答案 1 :(得分:18)
答案 2 :(得分:3)
您应该始终删除不再需要的文件。删除文件最直接的方法是让打开的文件引用自己调用delete()。
myFile.delete()
;
如果文件保存在内部存储器上,您还可以通过调用deleteFile()来请求Context查找并删除文件:
myContext.deleteFile(fileName);
注意:当用户卸载您的应用时,Android系统会删除以下内容:
您在内部存储上保存的所有文件
您使用getExternalFilesDir()
在外部存储上保存的所有文件。
但是,您应该定期手动删除使用getCacheDir()
创建的所有缓存文件,并定期删除不再需要的其他文件。
来源:http://developer.android.com/training/basics/data-storage/files.html
答案 3 :(得分:2)
如果要删除文件夹中的所有文件,请使用以下功能:
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();
}
}
}
文件夹必须存在于存储空间中。如果没有,我们可以再检查一下。
if (myDir.exists() && myDir.isDirectory()) {
//write same defination for it.
}
答案 4 :(得分:1)
使用File
的delete
方法
答案 5 :(得分:1)
new File(mUri.toString).delete();
答案 6 :(得分:1)
union all
答案 7 :(得分:0)
科特林的另一种选择
val file: File = context.getFileStreamPath("file_name")
val deleted: Boolean = file.delete()