警告:忽略File.mkdir()

我使用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"; 

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

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

File.mkdir()的结果被忽略

… 或类似的东西。 它告诉你,你忽略了mkdir()调用的结果,它告诉你是否创建了一个目录。

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

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


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

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

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

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

如果要忽略此警告,请在方法上添加:@SuppressWarnings(“all”)