如何删除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中的内部存储文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 android studio 从应用程序中的内部或外部存储(SD 卡)读取文件?

如何在 Android 中删除和重命名文件?

Android中的内部存储与外部存储

将文件从内部存储复制到Android中的外部存储

Android_内部存储文件的读写

android-数据存储之手机内部file存储