警告:忽略File.mkdir()

Sri*_*ddy 12 android sd-card audio-recording android-sdcard

我使用Media Recorder API创建了一个基本的录音应用程序.我正在尝试在SD卡中创建一个文件夹,并将我录制的文件保存到该文件夹​​中.我收到以下代码的警告.

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";
Run Code Online (Sandbox Code Playgroud)

如何解决此警告消息.如果有任何其他错误,请随意修改代码.

Roh*_*war 16

正如@Stephen C建议的那样,我以这些方式处理

1)

boolean isDirectoryCreated= path.mkdir();

并忽略'isDirectoryCreated'

2)(推荐)

 boolean isDirectoryCreated=path.exists();
 if (!isDirectoryCreated) {
     isDirectoryCreated= path.mkdir();
 }
 if(isDirectoryCreated) {
    // do something
 }
Run Code Online (Sandbox Code Playgroud)

3)

if (!path.exists()) {
   if(path.mkdir()){
     // do something
   }
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*n C 15

如果我错了,请纠正我,但我希望(汇编)警告信息真的这样说:

File.mkdir()的结果被忽略

... 或类似的东西.它告诉您,您忽略了mkdir()调用的结果,该调用会告诉您是否已创建目录.

避免警告的一种方法是测试结果并采取适当的行动.另一种方法是简单地将结果分配给临时变量,忽略它,并且(可能)稍后崩溃,因为目录不是应该创建的.

(猜猜哪个解决方案更好......)


如果有任何其他错误,请随意修改代码.

既然你问过......对于Java变量名使用匈牙利表示法是很糟糕的.Java是一种强类型语言,其中所有变量都具有明确的声明类型.你不应该需要一些可怕的标识符约定的心理拐杖来告诉你变量的类型是什么.