能否通過目錄起始簇號來獲取該目錄的長文件名!?[原創(chuàng)]

FileNameBuffer[ FileCount ].DirStartClust = CurrentDirStartClust; /* 記錄當(dāng)前目錄的起始簇號,用于加快文件打開速度 */

RT,如何獲取??! 先謝謝各位了。

這個簇號一般是通過打開文件的時候獲取,你使用的是哪款芯片?需要根據(jù)你的實際應(yīng)用才能給你解釋。


用的是CH376。問題是,在多級目錄下的文件的短文件名已經(jīng)知道(但是絕對路徑不知道)。而且該文件當(dāng)前處于打開狀態(tài)。我能否通過某種方式得到該文件的長文件名?于是我提出了上面的那個問題。

望賜教。


問題也可以轉(zhuǎn)化為:,在多級目錄下的文件的短文件名已經(jīng)知道(但是絕對路徑不知道)。而且該文件當(dāng)前處于打開狀態(tài)。這種情況下我能否獲取到該文件絕對路徑,進(jìn)而獲取該文件的長文件名?如果該方法不行,還有其他方法獲取到長文件名嗎?


需要完整的路徑才能獲取長文件名,或者你可以去修改CH376GetLongName函數(shù)里面打開文件部分獲取目錄屬性程序應(yīng)該是可以通過相對路徑來獲取的。


真的可以嗎?有人實現(xiàn)過嗎?我也在嘗試修改CH376GetLongName函數(shù),但是比較難!


修改CH376GetLongName里面打開文件那個,其他不需要修改的。


謝謝hcn的回應(yīng),給我很大的幫助。 我看了CH376GetLongName函數(shù)后發(fā)現(xiàn)有兩處要修改的: 1: s = CH376FileOpenPath( PathName ); /* 打開多級目錄下的文件或者目錄 */ 2: if ( GlobalBuf[33] == 0 ) { /* 當(dāng)前的文件目錄信息扇區(qū)處理結(jié)束,轉(zhuǎn)到前一個扇區(qū) */ s = CH376LocateInUpDir( PathName ); /* 在上級目錄中移動文件指針到當(dāng)前 文件目錄信息所在的扇區(qū) */ if ( s != USB_INT_SUCCESS ) break; if ( CH376ReadVar32( VAR_CURRENT_OFFSET ) == 0 ) { /* 當(dāng)前已經(jīng)處于目錄扇區(qū)的開始,無法獲取長文件名 */ s = ERR_LONG_NAME_ERR; break; } GlobalBuf[33] = DEF_SECTOR_SIZE / sizeof( FAT_DIR_INFO ); /* 指向前一個扇區(qū)的最后一個文件目錄信息 */ } GlobalBuf[33] --; /* 從后向前搜索文件目錄信息 */

其中第一處很容易修改,因為文件本身已經(jīng)打開了,所以1處完成。 但是第二處修改涉及到該函數(shù)的調(diào)用: s = CH376LocateInUpDir( PathName );

這個函數(shù)牽扯到上一級目錄的處理,很是復(fù)雜。 我在想這個函數(shù)會否不能修改了(在我所描述的情況里)。 hcn兄有經(jīng)驗嗎?


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

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