如何删除android中的内部存储文件?
Posted
技术标签:
【中文标题】如何删除android中的内部存储文件?【英文标题】:How to delete internal storage file in android? 【发布时间】:2010-08-24 08:32:41 【问题描述】:我已使用 android 内部存储为我的应用程序保存一个文件(使用 openFileOutput
),但我想删除该文件,是否可以以及如何删除?
【问题讨论】:
对于 kotlin,请参阅link 【参考方案1】:File dir = getFilesDir();
File file = new File(dir, "my_filename");
boolean deleted = file.delete();
【讨论】:
【参考方案2】:我知道这有点老套,但 docs 说要使用:
deleteFile("filename");
而不是:
File.delete();
如果您已经在使用:
getFilesDir();
有点道理。
【讨论】:
【参考方案3】:您应该始终删除不再需要的文件。删除文件最直接的方法是让打开的文件引用对其自身调用 delete()。
myFile.delete()
;
如果文件保存在内部存储中,也可以通过调用deleteFile()让Context定位并删除文件:
myContext.deleteFile(fileName);
注意:当用户卸载您的应用时,Android 系统会删除以下内容:
您保存在内部存储中的所有文件
您使用getExternalFilesDir()
保存在外部存储上的所有文件。
但是,您应该定期手动删除使用getCacheDir()
创建的所有缓存文件,并定期删除您不再需要的其他文件。
来源:http://developer.android.com/training/basics/data-storage/files.html
【讨论】:
【参考方案4】:如果要删除文件夹中的所有文件,请使用以下函数:
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.
【讨论】:
【参考方案5】:new File(mUri.toString).delete();
【讨论】:
【参考方案6】: void clearMyFiles()
File[] files = context.getFilesDir().listFiles();
if(files != null)
for(File file : files)
file.delete();
【讨论】:
此答案因其长度和内容而被标记为低质量。建议添加对它的作用以及它如何回答问题的描述。【参考方案7】:使用File的delete
方法
【讨论】:
【参考方案8】:Kotlin 中的另一种选择
val file: File = context.getFileStreamPath("file_name")
val deleted: Boolean = file.delete()
【讨论】:
以上是关于如何删除android中的内部存储文件?的主要内容,如果未能解决你的问题,请参考以下文章