代码之家  ›  专栏  ›  技术社区  ›  maxsap

如何在Android中删除内部存储文件?

  •  38
  • maxsap  · 技术社区  · 14 年前

    我已经使用Android内部存储为我的应用程序保存了一个文件(使用 openFileOutput )但我想删除那个文件,它是否可能以及如何删除?

    7 回复  |  直到 7 年前
        1
  •  88
  •   plugmind    14 年前
    File dir = getFilesDir();
    File file = new File(dir, "my_filename");
    boolean deleted = file.delete();
    
        2
  •  18
  •   Barry    12 年前

    我知道这有点老套,但是 docs 说要用:

    deleteFile("filename");
    

    而不是:

    File.delete();
    

    如果您已经在使用:

    getFilesDir();
    

    有点道理。

        3
  •  3
  •   Vipul Divyanshu    10 年前

    您应该始终删除不再需要的文件。删除文件最简单的方法是让打开的文件引用本身调用delete()。

    myFile.delete() ;

    如果文件保存在内部存储中,您还可以通过调用delete file()请求上下文查找和删除文件:

    myContext.deleteFile(fileName);

    注意:当用户卸载您的应用程序时,Android系统会删除以下内容: 保存在内部存储中的所有文件 保存在外部存储中的所有文件 getExternalFilesDir() . 但是,您应该手动删除用创建的所有缓存文件 getCacheDir() 定期删除您不再需要的其他文件。

    来源 : http://developer.android.com/training/basics/data-storage/files.html

        4
  •  2
  •   Stephan    7 年前

    如果要删除文件夹中的所有文件,请使用以下功能:

    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
  •  1
  •   st0le    14 年前

    使用 delete 方法 File

        6
  •  1
  •   dev mz    13 年前
    new File(mUri.toString).delete(); 
    
        7
  •  1
  •   djdance    7 年前
     void clearMyFiles() {
        File[] files = context.getFilesDir().listFiles();
        if(files != null)
            for(File file : files) {
               file.delete();
            }
     }