为什么ContextWrapper.getDir()返回的文件总是存在?

时间:2015-12-29 07:24:31

标签: android

我正在制作一个应用程序,我必须在内部保存视频文件(在应用程序内存中卸载应用程序时,所有文件也应该被卸载)。为此我阅读了很多文章并搜索了很多文章并找到了不同的解决方案之后我在那里制作了一个方法,我编写了代码,这里是代码

public static boolean checkIfAlreadyDownloaded(Context context, String rhymeName) {
    ContextWrapper cw = new ContextWrapper(context);
    File rhymeDirectory = cw.getDir(Constants.INTERNAL_DIRECTORY_NAME, Context.MODE_PRIVATE);
    if (rhymeDirectory.exists()) {
        File individualRhyme = new File(rhymeDirectory, rhymeName);
        if (individualRhyme.exists())
            return true;
    }
    return false;
}

这里的Constants.INTERNAL_DIRECTORY NAME是“Rhymes” 我理解的是,如果没有目录,那么它返回false但当我第一次安装我的应用程序时它返回true。即使我卸载它然后重新安装它总是返回true。我的问题是“为什么它总是返回true”?第一次不应该回复假吗?如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:1)

如果需要,

ContextWrapper.getDir()会创建目录,如documentation中所述:

  

public File getDir (String name, int mode)

     

检索,创建需要的新目录,应用程序可以在其中放置自己的自定义数据文件。

答案 1 :(得分:0)

  File mydir = context.getDir("mydir", Context.MODE_PRIVATE);

  //Creating an   internal dir;
  File fileWithinMyDir = new File(mydir, "myfile");
  //Getting a file within the dir.
  FileOutputStream out = new FileOutputStream(fileWithinMyDir);
  //Use the stream as usual to write into the file

从内部删除文件:

  if (new File("path/to/file").delete()) {
   // Deleted
    } else {
    // Not deleted
    }