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; /* 根據(jù)字符串長度將結(jié)束符替換為搜索的序號,從0到254 */ i = CH375FileOpen( ); /* 打開文件,如果文件名中含有通配符*,則為搜索文件而不打開 */ if ( i == ERR_MISS_FILE ) break; /* 再也搜索不到匹配的文件,已經(jīng)沒有匹配的文件名 */ if ( i == ERR_FOUND_NAME ) { /* 搜索到與通配符相匹配的文件名,文件名及其完整路徑在命令緩沖區(qū)中 */ continue; /* 繼續(xù)搜索下一個匹配的文件名,下次搜索時序號會加1 */ } else { /* 出錯 */ mStopIfError( i ); break; } } 可以通過這個程序可以列出子目錄下的所有文件 如要我要列出.txt .c 這樣的所有文件該怎么實(shí)現(xiàn)? 謝謝!
查看: 2811
回復(fù): 4
[求助]關(guān)于CH375A的問題
熱門產(chǎn)品 :
CH32X035: 32位USB+USB PD單片機(jī)
是要枚舉*.C? 找到一個文件后,你判斷一下后綴名就可以了,即“.”后面的內(nèi)容是否為字符“C”
上面的方法不行,枚舉文件的時候,直接找‘?!业街笈袛嗪竺娴淖址欠駷椤瓹’,同時還要判斷接下來的數(shù)據(jù)應(yīng)該為0X00
工程師 您能不能把上面的說得具體一點(diǎn) 最好有一段代碼讓我看看,謝謝您們的幫助!
是這樣的,在枚舉的時候,直接枚舉pCodeStr = "\\C51\\*",枚舉的是返回的是這個目錄下面的文件名,實(shí)際的文件名是放在mCmdParam.Open.mPathName緩沖區(qū)里面的,在你枚舉一個文件完成之后,你判斷這個存放文件的緩沖區(qū)里面的字符串‘?!@個是后綴名的分界點(diǎn),后面的就后綴名,你判斷下在這個后面的字符串應(yīng)該是‘C’,在‘C’的字符串后面你判斷下這個文件是否結(jié)束,也就是判斷0X00這個數(shù)據(jù)。
請勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復(fù),可以選擇微信賬號登錄