lib能不能支持长文件或支持大小字母
LIB预留了长文件名和小写字母的接口,可以自行实现。如果公司在LIB中统一实现,因为单片机空间有限,那么有的用户会嫌LIB太大太复杂,所需的ROM和RAM要增加,会增加单片机的硬件成本,毕竟这是绝大多数用户用不到的功能,大多数人直接使用大写字母和汉字文件名就可以了,何必为少数人的需求增加大家的硬件成本。公司以后可能为提供长文件名的例子,当然是使用LIB,供各人根据需要使用。另外,枚举*.MP3也是一样的情况,搜索文件也不是大家都用的功能,搜索功能太复杂会增加很多代码,有的单片机程序空间小,不适用。
店小二,tech,小小何,你们在吗?给个解答吧?
枚举*.MP3,你可以这样做嘛,把目录下所有文件枚举出来,然后判断返回的文件名中后缀是不是MP3。不就可以了嘛,不过繁了点,哼哼,!
小写文件名的文件,好象能被打开,读写,不过写过后在WINDOWS下打开,就好象会有问题了, 在WINDOWS里,小写文件名文件,同时会有一个大写文件名存在目录项内。
“写
这不是子程序库的BUg!因为它本来就只支持大写,就象在DOS下,因为在WINDOWS 下文件名有两部分,小写文件名还有对应的 大写文件名同时存在目录项内,只不过子程序库只操作了大写的。
枚举文件可以将目录下,一个个搜索,如果发现是.MP3。那记下文件序号就可以了, 列出当前目录所有文件,那也是通过枚举...\ 0xn.序号从0-255,然后返回各个文件名。你要是一次调用一个函数,将所有文件列出,那可需要32*n个字节的RAM做参数返回啊!谁受的了!
序号好象是个8位的数据。这倒是有点局限了。
那
因为80X86内存大运行快,前几天为80X86系统临时改的库支持16位序号,也就是0到65535个文件。在评估板资料例子10中有FAT底层处理,参考它可以实现长文件名,不过在51单片机等8位机上实现长文件名确实有点为难它,毕竟要增加占用几百字节的RAM。等空闲时打算出个长文件名的例子. 即使在WINDOWS下,系统底层最终会将长文件名和小写文件名转换为大写短文件名才能打开文件。
一
附
附