Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 新文件(路径)总是在android上创建文件?_Java_Android_File_Android File - Fatal编程技术网

Java 新文件(路径)总是在android上创建文件?

Java 新文件(路径)总是在android上创建文件?,java,android,file,android-file,Java,Android,File,Android File,我正在尝试检查android sd卡上是否存在文件…因此我会: File f=new File(sdpath + "/" + DATABASE_NAME); // if(!f.exits()) { ...create new file.. } else { ...do something... } 每次在sd卡上创建目录或文件时 我知道它不存在,当新文件被执行时,它被创建了,不应该 我在谷歌上读到,新文件并没有在文件系统上创建一个实际的文件,但就我而言,它确实 检查文件/目录是否在不使用

我正在尝试检查android sd卡上是否存在文件…因此我会:

File f=new File(sdpath + "/" + DATABASE_NAME); //   
if(!f.exits()) {
...create new file..
}
else {
...do something...
}
每次在sd卡上创建目录或文件时

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

我在谷歌上读到,新文件并没有在文件系统上创建一个实际的文件,但就我而言,它确实

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


编辑1:我想补充一点(4年后:)。在我写这篇文章的时候,这个问题只发生在两台设备上,而且再也没有发生过,其中一台是HTC Desire C和安卓4.0,另一台是华为安卓2.x,记不得了。

这可能会帮助你,试试看

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();
                    }

                }

工作方式与您的差不多:

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
}
我希望它能帮助你,因为它没有在我的应用程序中创建文件或目录。它只是检查了路径。

试试这个

    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();
        }
}
}

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

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


在这种情况下,我创建了一个新文件,它工作正常,下次我运行它时,文件已经在sd卡上了…

我的sdpath就是这样构造的,所以我基本上已经这样做了:(这仍然和我做的一样…每次我放入新文件(某物)时,它都会创建一个具有该名称的目录。