我使用Media Recorder API创build了一个基本的audio录音应用程序。 我试图在SD卡中创build一个文件夹,并将录制的文件保存到该文件夹。 我收到以下代码的警告。
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()调用的结果,告诉你是否创build了一个目录。
避免警告的一种方法是testing结果并采取适当的行动。 另一种方法是将结果简单地分配给一个临时variables,忽略它,并且(可能)稍后崩溃,因为该目录本来就不是被创build的。
(猜猜哪个解决scheme更好…)
如果有任何其他错误,请随意修改代码。
既然你问了…对于Javavariables名使用匈牙利符号是不好的风格。 Java是一种强types语言,其中所有variables都有明确的声明types。 你不应该需要一些可怕的标识符约定的精神拐杖来告诉你一个variables的types是什么意图。
正如@Stephen C所build议的,我以这种方式处理
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”)