2011-12-14 18 views
1

AndroidのSDカード上のMIDIファイルを書き込もうとしたときに、私は次のエラーを取得しています:SDカード上のファイルを書き込むことができません(ディレクトリ)

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" /> 

ファイルライターは、外部のプロジェクト/ライブラリにあります。いずれにしてもわかりやすい場合は、それを使用してください。

これは単純な間違いだと思いますが、ここで何が間違っていたのかは分かりません。

ありがとうございます。

+0

sdカードの/ mnt/sdcard/folder/midifiles /ディレクトリにfolder.myidフォルダがありますか? –

答えて

0

あなたは

f.mkdirs(); 

とディレクトリ/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; 
} 
+0

これは私にとってはうまくいかなかった。血まみれのものは、指定されたパスにファイルの名前が含まれていることを認識しませんが、ファイル名がデバイスのフォルダ名として正しいパスにフォルダを作成します。 –

+0

残念ですが、ディレクトリを別々に作成しようとしているのですか、単に 'createNewFile'を実行しようとしていますか? – zode64

+0

あなたの質問をあなたが今試しているコードで更新してください – zode64

0

お使いの携帯電話でこれを実行していますか?またはあなたのPCに接続?あなたのPCで探しているかもしれないので。

関連する問題