4

我正在尝试检查android sd卡上是否存在文件...所以我这样做:

File f=new File(sdpath + "/" + DATABASE_NAME); //   
if(!f.exits()) {
...create new file..
}
else {
...do something...
}

每次这实际上都会在 sd 卡上创建目录或文件。

我知道它不存在,并且当执行新文件时它被创建并且它不应该?

我在谷歌上读到新文件不会在文件系统上创建实际文件,但在我的情况下它确实......

检查文件/目录是否在不使用新文件的情况下退出的任何替代方法。

编辑1:好吧,我想补充一下(4年后:))这个问题只发生在我写这篇文章时的两台设备上,以后再也不会出现了,其中一个是带有android 4.0的HTC Desire C和其他的是一些带有android 2.x的华为,不记得了。

4

4 回答 4

3

出于某种奇怪的原因,结果发现新文件每次都会创建一个目录......

我没有检查if (!f.exists()),而是将其更改为检查if (!f.isFile())

在那种情况下,我创建了一个新文件并且效果很好,下次我运行它时,该文件已经在 sd 卡上......

于 2013-04-11T13:03:44.203 回答
2

工作方式几乎和你的一样:

File f = new File(Environment.getExternalStorageDirectory(), "a directory");
if(!f.exists){
// do something
}

并检查文件是否存在几乎相同的方式:

File f = new File(Environment.getExternalStorageDirectory() + "/a directory/" + "a file");
if(!f.exists){
// do something
}

我希望它可以帮助你,因为它没有在我的应用程序中创建文件或目录。它只是检查了路径。

于 2013-04-11T12:06:34.660 回答
0

这可能对你有帮助,试试

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                    //handle case of no SDCARD present
                } else {
                    File file = new File(Environment.getExternalStorageDirectory()
                         +File.separator
                         +"myDirectory" //folder name
                         +File.separator
                         +"myFile.example"); //file name

                    if(file.exists()){
                        Toast.makeText(MainActivity.this, "Not Create ", 12).show();
                    }else{
                        file.mkdirs();
                        Toast.makeText(MainActivity.this, "Create ", 12).show();
                    }

                }
于 2013-04-11T12:02:36.040 回答
0

尝试这个

    File[] files = filedir.listFiles();
    for (File file2 : files) {
        if (file2.isDirectory()) {
            Toast.makeText(this, "directory", Toast.LENGTH_LONG).show();
        } else {  
            if (file2.getName().equals(DATABASE_NAME)) {
                Toast.makeText(this, "File found",Toast.LENGTH_LONG).show();
            }
          else{Toast.makeText(this, "File not found",Toast.LENGTH_LONG).show();
        }
}
}
于 2013-04-11T12:09:20.173 回答