加了其他字符都返回找不到文件!如果要使用其他字符需要怎么修改?
默認情況下文件須符合DOS命名規(guī)則:即“8個或以下字符大寫字母和數(shù)字組合的文件名”.“3個或以下字符大寫字母和數(shù)字組合”
例如:
ABCD1234.ABC
12345678.123
1111QAZD.1A2
1A2B3C.4D
1.A
..........
就是只支持短文件名嘛。。
長文件名的實現(xiàn)可以借鑒CH32F103的示例程序:http://www.findthetime.net/downloads/CH32F103EVT_ZIP.html
其中HOST_Udisk下的EXAM13實現(xiàn)了對長文件名的操作。
可以留下郵箱,移植完后發(fā)送給你。
郵件請發(fā) 個人信息保護,已隱藏?謝謝!
郵件已發(fā)
請問這個生成長文件名后,把u盤插到電腦上是不是看到的還是短文件名?
我這里沒有103的板子不能驗證,你能講一下他的原理嗎?
收到了,謝謝,驗證可行,不過能不能再麻煩你一下,把讀寫文件都移植一下?
文件讀寫和長文件名功能無關(guān),實際文件操作對象都是短文件名,長文件名只是一個“屬性”。
直接參考CH559EVT下EXAM1
U盤里的文件是我在電腦上建立的,然后再掛到559上,提示沒找到文件
長文件名只是屬性,通俗講就是給你屏幕上看著好辨認一點哪個是哪個。
提供的文件系統(tǒng)實際操作對象始終是短文件名。但電腦創(chuàng)建文件時短文件名不可見,且要操作的對象就是短文件名。
所以U盤接入MCU后需要枚舉出所有文件(CH559EVT-EXAM11),嘗試獲取每個文件的長文件名,通過對長文件名進行比對,判斷是否為需要的文件。
或者根據(jù)通用規(guī)則去檢索文件:
我以為是你的lib里面自動去比對的,還要在外面枚舉和比對啊。。。
請再幫忙指點一下,確實沒想通。。
想要讀寫電腦上創(chuàng)建的c.c文件,舉例如下:
執(zhí)行函數(shù)枚舉對應(yīng)目錄下所有文件,能夠獲取到每個文件短文件名:A.A、B.B、C.C、D.D.............等
執(zhí)行函數(shù)對短文件名A.A獲取其長文件名,得到長文件名a.a;
執(zhí)行函數(shù)對短文件名B.B獲取其長文件名,得到長文件名b.b;
執(zhí)行函數(shù)對短文件名C.C獲取其長文件名,得到長文件名c.c;
執(zhí)行函數(shù)對短文件名D.D獲取其長文件名,得到長文件名d.d;
其中c.c是在電腦上創(chuàng)建的長文件名文件,可知該文件的短文件名即是C.C,后續(xù)文件讀寫操作都針對短文件名C.C展開。
這里有點疑問,這是什么