[求助]長(zhǎng)短文件名簡(jiǎn)單根目錄枚舉問(wèn)題

遇到了一個(gè)問(wèn)題,按照EXAM1里面做短文件名的根目錄枚舉,程序通過(guò),但是加入了EXAM11里面的顯示長(zhǎng)文件名的代碼之后,只能枚舉出來(lái)1個(gè)文件。(U盤(pán)里有3個(gè)文件,都是英文名。)請(qǐng)問(wèn)下各位能幫我看下這代碼嗎?為什么變?yōu)殚L(zhǎng)文件名輸出以后,Wait376Interrupt()返回了ERR_MISS_FILE ,即0x42?

短文件名根目錄枚舉主要代碼如下:(幾乎全是EXAM1里的代碼了)

strcpy((char *)buf,"\\*"); printf("List file %s\n",buf); s=CH376FileOpenPath(buf); while(s==USB_INT_DISK_READ) { CH376ReadBlock(buf); pDir=(P_FAT_DIR_INFO)buf; if(pDir->DIR_Name[0]!='.') { if(pDir->DIR_Name[0]==0x05) pDir->DIR_Name[0]=0xE5; pDir->DIR_Attr=0; printf("*** EnumName: %s\n",pDir->DIR_Name); } xWriteCH376Cmd(CMD0H_FILE_ENUM_GO); xEndCH376Cmd(); s=Wait376Interrupt(); printf("s=%02x",s); }

長(zhǎng)文件名根目錄枚舉主要代碼如下:(加入了部分EXAM11里的代碼)

strcpy((char *)buf,"\\*"); printf("List file %s\n",buf); s=CH376FileOpenPath(buf); while(s==USB_INT_DISK_READ) { CH376ReadBlock(buf); pDir=(P_FAT_DIR_INFO)buf; if(pDir->DIR_Name[0]!='.') { if(pDir->DIR_Name[0]==0x05) pDir->DIR_Name[0]=0xE5; pDir->DIR_Attr=0; s=CH376GetLongName(pDir->DIR_Name,LongNameBuf); for(j=0;j { printf("%c",LongNameBuf[j]); if(*(PUINT16)(&LongNameBuf[j])==0) break; } delay_ms(20); printf("s=%02x \n",s); } xWriteCH376Cmd(CMD0H_FILE_ENUM_GO); xEndCH376Cmd(); s=Wait376Interrupt(); printf("s=%02x",s); }

請(qǐng)問(wèn)為什么第二段程序中中斷直接就返回了ERR_MISS_FILE呢?

按照你的送入的短文件名不正確,例如一個(gè)文件名為“11111111111111111.txt”文件,你枚舉出來(lái)的短文件名為“111111~1TXT”,而獲取的長(zhǎng)文件名需要輸入絕對(duì)路徑。還有如果是一個(gè)短文件名,例如“12.TXT”,按照你獲取的文件名應(yīng)該是“12 TXT”中間有6個(gè)空格。


謝謝,貌似就是路徑的問(wèn)題,這個(gè)地方我的確忽略了。


但是有個(gè)地方我想再問(wèn)一下,xWriteCH376Cmd(CMD0H_FILE_ENUM_GO);這個(gè)命令表示到哪里去繼續(xù)枚舉?那個(gè)語(yǔ)句可以決定他的枚舉范圍?還是默認(rèn)就是全盤(pán)枚舉嗎?


枚舉當(dāng)前目錄下符合要求的文件或者目錄。


謝謝!


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频