Не могу записать файл на SD-карту (это каталог) - PullRequest
1 голос
/ 14 декабря 2011

Я получаю следующую ошибку при попытке записи миди-файла на SD-карту Android:

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 голосов
/ 14 декабря 2011

Вы используете это на своем телефоне? или подключен к компьютеру? потому что он может смотреть на вашем компьютере.

0 голосов
/ 14 декабря 2011

Вы создаете каталог /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; 
}
...