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

时间:2011-12-14 16:29:54

标签: 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, 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" />

文件编写器位于外部项目/库中...如果这在任何情况下都有用。

我想这是一个简单的错误,但老实说我不知道​​这里出了什么问题。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您正在使用

创建目录/mnt/sdcard/folder/midifiles/file.mid
f.mkdirs();

你应该这样做:

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

答案 1 :(得分:0)

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