Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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 无法在SD卡上写入文件(是目录)_Android_File_Sd Card_Writer - Fatal编程技术网

Android 无法在SD卡上写入文件(是目录)

Android 无法在SD卡上写入文件(是目录),android,file,sd-card,writer,Android,File,Sd Card,Writer,尝试在Android SD卡上写入midi文件时出现以下错误: 12-14 16:22:22.219: ERROR/Thread writer(1108): java.io.FileNotFoundException: /mnt/sdcard/folder/midifiles/file.mid (Is a directory) in /mnt/sdcard/folder/midifiles/ 这就是相关代码: public void writeFile(String filename, Str

尝试在Android SD卡上写入midi文件时出现以下错误:

12-14 16:22:22.219: ERROR/Thread writer(1108): java.io.FileNotFoundException: /mnt/sdcard/folder/midifiles/file.mid (Is a directory) in /mnt/sdcard/folder/midifiles/
这就是相关代码:

public void writeFile(String filename, String dir, int bpm) throws Exception {          

    File f = new File(dir,filename);    
    if(!f.exists()) {
        f.mkdirs();

        if(!f.createNewFile()) {
            return; 
        }
    }
    FileOutputStream fos = new FileOutputStream(f);
我正在通过接收路径

Environment.getExternalStorageDirectory()
相关许可也包括在内

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
文件编写器位于外部项目/库中。。。如果这是在任何情况下有用的知道

我想这是一个简单的错误,但我真的不知道这里出了什么问题


提前感谢。

您正在使用创建目录/mnt/sdcard/folder/midifiles/file.mid

你应该做:

File f = new File(dir);    
if(!f.exists()) {
    f.mkdirs();

    File f1 = new File(dir,filename);    
    if(!f1.createNewFile()) {
       return; 
    }
}
或者只是

File f = new File(dir,filename);    
if(!f.exist()) {
    f.createNewFile();
    return; 
}

你在手机上运行这个吗?或连接到您的电脑?因为它可能正在您的电脑上查看。

您的sd卡上/mnt/sdcard/folder/midifiles/目录中是否有文件夹file.mid?这对我不适用。该死的东西根本不知道给定的路径包含文件名,但它在正确的路径中创建了一个文件夹,文件名作为设备上的文件夹名。抱歉,不要跟随,你是要单独创建目录还是只运行createNewFile?用你现在尝试的代码更新你的问题,我相信我们可以解决它
File f = new File(dir,filename);    
if(!f.exist()) {
    f.createNewFile();
    return; 
}