[求助]关于CH375A的问题

if ( i == ERR_MISS_DIR || i == ERR_MISS_FILE ) { /* 没有找到文件 */ /* 列出文件 */ if ( i == ERR_MISS_DIR ) pCodeStr = "\\*"; /* C51子目录不存在则列出根目录下的文件 */ //else pCodeStr = "\\C51\\CH375*"; /* CH375HFT.C文件不存在则列出\C51子目录下的以CH375开头的文件 */ else pCodeStr = "\\C51\\*C"; for ( c = 0; c < 254; c ++ ){ /* 最多搜索前254个文件,超过254需参考EXAM0使用CH375vFileSize */ i = mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, pCodeStr ); /* 搜索文件名,*为通配符,适用于所有文件或者子目录 */ mCmdParam.Open.mPathName[ i ] = c; /* 根据字符串长度将结束符替换为搜索的序号,从0到254 */ i = CH375FileOpen( ); /* 打开文件,如果文件名中含有通配符*,则为搜索文件而不打开 */ if ( i == ERR_MISS_FILE ) break; /* 再也搜索不到匹配的文件,已经没有匹配的文件名 */ if ( i == ERR_FOUND_NAME ) { /* 搜索到与通配符相匹配的文件名,文件名及其完整路径在命令缓冲区中 */ continue; /* 继续搜索下一个匹配的文件名,下次搜索时序号会加1 */ } else { /* 出错 */ mStopIfError( i ); break; } } 可以通过这个程序可以列出子目录下的所有文件 如要我要列出.txt .c 这样的所有文件该怎么实现? 谢谢!

是要枚举*.C? 找到一个文件后,你判断一下后缀名就可以了,即“.”后面的内容是否为字符“C”


上面的方法不行,枚举文件的时候,直接找‘。’找到之后判断后面的字符是否为‘C’,同时还要判断接下来的数据应该为0X00


工程师 您能不能把上面的说得具体一点 最好有一段代码让我看看,谢谢您们的帮助!


是这样的,在枚举的时候,直接枚举pCodeStr = "\\C51\\*",枚举的是返回的是这个目录下面的文件名,实际的文件名是放在mCmdParam.Open.mPathName缓冲区里面的,在你枚举一个文件完成之后,你判断这个存放文件的缓冲区里面的字符串‘。’这个是后缀名的分界点,后面的就后缀名,你判断下在这个后面的字符串应该是‘C’,在‘C’的字符串后面你判断下这个文件是否结束,也就是判断0X00这个数据。


只有登录才能回复,可以选择微信账号登录