Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Android文件存在问题_Android_File_File Exists - Fatal编程技术网

Android文件存在问题

Android文件存在问题,android,file,file-exists,Android,File,File Exists,当我创建File File=new File(等)时,我实际上在SD卡上创建了那个文件?我有点困惑,因为每次我的条件为真,程序跳入if树,但在那个时候SD卡上并没有文件 String filename = "pictures.data"; String root = Environment.getExternalStorageDirectory().toString(); File dir = new File(root + "/courier/saved/");

当我创建File File=new File(等)时,我实际上在SD卡上创建了那个文件?我有点困惑,因为每次我的条件为真,程序跳入if树,但在那个时候SD卡上并没有文件

    String filename = "pictures.data";
    String root = Environment.getExternalStorageDirectory().toString();
    File dir = new File(root + "/courier/saved/");
    File file = new File(dir,filename);

    if (file.exists())
        // program jumps here
    else{

    }

好的,您可以在dir/courier/saved/中查看文件。不管怎样,这是我的答案

String filename = "pictures.data";
String root = Environment.getExternalStorageDirectory().toString();
File dir = new File(root + "/courier/saved/");
File file = new File(dir,filename);
file.mkdirs();
if (file.exists())
    // program now stops here
else{

}

最好是预先创建dir,但这会动态创建它

为什么要使用
toString()
方法?您可以使用返回字符串的
File.getPath()
。打印变量root。getExternalStorageDirectory()不能可靠地给出sd卡的位置(我已经看到不同的设备在这方面的行为不同)。一旦确认根变量确实指向外部SD卡,则可以进一步挖掘/storage/sdcard0是我的外部存储,因此/storage/sdcard0/courier/saved/被添加到路径中。在下一步中,iam检查文件是否不存在,如果(!dir.exists()){dir.mkdirs();}但若文件存在,则从文件中读取,然后再次保存…顺便说一句,欢迎使用Stackoverflow。这是一个新问题,你必须把它贴出来。在创建新问题的过程中,您将看到许多现有答案,请尝试。然后按“接受”以结束问题。如果您认为我的答案解决了这个问题,请按“接受”并向上投票,如果您满意的话