搜索文件名有的时候ch375Result会返回0x31错误码,不知道什么原因,导致文件名与序号不能对上
for ( searchFileIndex = 0; searchFileIndex < 255; searchFileIndex++ ) /* 最多搜索前255个文件 */ { OS_ENTER_CRITICAL(); strcpy( (char *)mCmdParam.Open.mPathName, (char *)pCodeStr ); /* 搜索文件名,*为通配符,适用于所有文件或者子目录 */ i = strlen( (char const *)mCmdParam.Open.mPathName ); /* 计算文件名长度,以处理文件名结束符 */ mCmdParam.Open.mPathName[ i ] = searchFileIndex; /* 根据字符串长度将结束符替换为搜索的序号,从0到255 */ ch375Result = CH375FileOpen( ); /* 打开文件,如果文件名中含有通配符*,则为搜索文件而不打开 */ OS_EXIT_CRITICAL(); if ( ch375Result == ERR_MISS_FILE ) break; /* 再也搜索不到匹配的文件,已经没有匹配的文件名 */ if ( ch375Result == ERR_FOUND_NAME ) /* 搜索到与通配符相匹配的文件名,文件名及其完整路径在命令缓冲区中 */ { nameLen = strlen( (char const *)mCmdParam.Open.mPathName ); if(nameLen < 4) continue; pExt = ((char *)mCmdParam.Open.mPathName) + nameLen - 4; if(strcmp(pExt, (char *)".MP3") == 0 || strcmp(pExt, (char *)".WMA") == 0 ) { OS_ENTER_CRITICAL(); if(usb_scan_play_flag == 0) { usb_total_song_num++; } ch375Result = CH375FileOpen( ); /* 打开文件 */ OS_EXIT_CRITICAL(); if ( ch375Result != ERR_MISS_DIR && ch375Result != ERR_MISS_FILE ) { OS_ENTER_CRITICAL(); if(usb_scan_play_flag == 1) { for(i = 0; i < 15; i++) { usb_name_buf[i] = mCmdParam.Open.mPathName[i]; } } else { DROPDOWN_AddString(dropdown0_usb, (const char*)mCmdParam.Open.mPathName);//添加文件名至下拉菜单 } OS_EXIT_CRITICAL(); } if(usb_scan_play_flag == 1) { OS_ENTER_CRITICAL(); usb_song_count_temp--; OS_EXIT_CRITICAL(); if(usb_song_count_temp == 0) { return 99; } } }
} else /* 出错 */ { TEXT_SetText(text5_usb, "读取失败"); return 99; }文字