2015-01-12 16 views
8

私は、メディアレコーダーAPIを使用して基本的なオーディオレコーディングアプリケーションを作成しました。私はSDカードにフォルダを作成し、そのフォルダに録音したファイルを保存しようとしています。次のコードでこの警告が表示されます。警告:File.mkdir()は無視されます

File.mkdir()この警告メッセージを解決するためにどのように

// Assign random number to avoid audio file from overwriting 
    Long tsLong = System.currentTimeMillis()/1000; 

    // Specify a Location for the recorded file to be stored in the SD card 
    mFileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/AudioRecordTest/"; 
    File path = new File(mFileName); 
    if(!path.exists()) { 
     path.mkdir(); 
    } 
    mFileName += "/AudioRecordTest_" + tsLong.toString() + ".mp3"; 
を無視しています。他の間違いがある場合は、コードを自由に変更してください。私が間違っている場合

+0

試し: '/ AudioRecordTest'の代わりに'/AudioRecordTest/' – Matteo

+0

あなたの' AndroidManifest.xml'ファイルに 'WRITE_EXTERNAL_STORAGE'パーミッションを追加しましたか? – Willis

+0

@Willisその許可ではなく、最初に追加しました。 –

答えて

9

は私を修正して、私は(コンパイル)警告メッセージが本当にこの言うことを期待:File.mkdirの

は結果()

を無視しています...またはそのようなものです。ディレクトリが作成されたかどうかを示すmkdir()コールの結果を無視していることを伝えています。

警告を回避する1つの方法は、結果をテストして適切に動作させることです。別の方法としては、一時変数に結果を代入し、無視し、ディレクトリが作成されたはずのときにディレクトリが作成されなかったために後でクラッシュする可能性があります。


は、他の間違いがある場合、コードを変更してお気軽に(...優れているソリューション推測)。

尋ねられたので... Java変数名にハンガリー語表記を使用するのは難しいです。 Javaは強く型付けされた言語であり、すべての変数に明確な宣言型があります。あなたは、変数の型が意図されていることを伝えるために、いくつかのひどい識別子の規則の精神的な松葉杖を必要とすべきではありません。

10

として@Stephen C iは、次の方法で

1)

boolean isDirectoryCreated= path.mkdir();

と無視を処理し、示唆 'isDirectoryCreated'

2)(推奨)

boolean isDirectoryCreated=path.exists(); 
if (!isDirectoryCreated) { 
    isDirectoryCreated= path.mkdir(); 
} 
if(isDirectoryCreated) { 
    // do something 
} 

3)

if (!path.exists()) { 
    if(path.mkdir()){ 
    // do something 
    } 
} 
0

あなたはこの警告を無視したい場合は、この方法でこれを追加します。最後の `/`なし @SuppressWarnings( "すべて")

+0

あなたのジャグリングレッスンを始める前に、あなたのシャツをシャープにしてください:-) –

+0

警告は抑制されていません。 – grant

関連する問題