if (files != null) {
    log.info('D:/new_audio/不为空!');
    for (File file : files) {
        String fileName = file.getName();
        if (fileName.contains('_')) {
            String[] fileNames = fileName.split('_');
            if (fileNames.length > 1 && fileNames[0].equals(audioFileFirstName)) {
                boolean b = file.delete();
                if (b) {
                    log.info('文件删除成功!');
                    if (specificRegularMy.getAudioFileId() != null) {
                        AudioFile audioFile = audioFileService.queryOneAudioFileByID(specificRegularMy.getAudioFileId());
                        if (audioFile == null) {
                            log.info('文件查找不到!');
                            return new Result<>(ResultCode.FAIL);
                        }
                        int ret = audioFileService.deleteOneAudioFileByIdAndName(specificRegularMy.getAudioFileId(), fileNames[1]);
                        if (ret > 0) {
                            log.info('数据库语音数据删除成功!');
                            //通知游戏端删除语音包
                            log.info('需要删除的语音包:' + audioFile);
                            springToGameService.reloadDeleteAudioFile(audioFile);
                        } else {
                            log.info('找不到id:' + specificRegularMy.getAudioFileId() + '文件名:' + fileNames[1] + '的数据库语音数据!');
                        }
                    }
                } else {
                    log.info('文件删除失败!');
                    return new Result<>(ResultCode.FAIL);
                }
            }
        }
    }
}

该代码片段实现了以下功能:

  1. 遍历音频文件目录:检查指定目录下是否存在音频文件,如果存在,则遍历每个文件。
  2. 提取文件名:获取每个文件的名称,并根据'_'符号进行分割,提取文件的前缀和后缀。
  3. 判断文件类型:判断文件名是否符合预期格式,例如是否包含'_'符号,以及文件前缀是否匹配目标音频文件名称。
  4. 删除文件:如果文件类型符合预期,则删除该文件。
  5. 同步数据库操作
    • 查询数据库中对应音频文件的记录。
    • 如果记录存在,则根据文件名后缀删除数据库中的对应记录。
    • 通知游戏端删除相应的音频包。
  6. 日志记录:代码中使用了日志记录功能,以便跟踪关键操作和错误信息。

代码优化点:

  • 将多层嵌套的判断条件合并简化,提高代码可读性。
  • 使用日志记录关键操作,方便调试和排查错误。
  • 代码中添加注释,解释代码逻辑。

该代码片段可以作为参考,用于实现删除音频文件并同步更新数据库的功能。

Java代码优化:删除音频文件并同步数据库

原文地址: https://www.cveoy.top/t/topic/oIO2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录