我的系统是arm+linux2.6.14
flash文件系统是jffs2,u盘或移动硬盘是FAT32
现象是这样的,在嵌入式系统中,我在u盘或移动硬盘内建立文件时,文件名只能是8+3(文件名8个字符+扩展名3个字符),再长一点文件名后面就被~1代替;但是把u盘或者移动硬盘拿到主机(我们平时用的linux系统中)上,又可以建长文件名的文件。
请问如何解决这种文件名长度受限的问题???我想用更长的文件名。。。
这是你的嵌入式系统的文件系统限制的。
要实现你的要求要修改嵌入式系统的文件系统。
linux可以支持很多种文件系统。FAT32可以支持长文件名。
你的现象应该是linux内对FAT32支持的配置不对。
你确定加载的是FAT32而不是FAT?
谢谢,各位兄台的回复,
问题解决了,shuiyan说的对,我的mount的时候是没有指定文件系统的类型的(-t),结果mount的时候,mount默认的是FAT,可能是因为我的kernel内选择了支持MSDOS fs的缘故。
现在,我只要mount的时候加上-t vfat,就可以支持长文件名了。
我还想问一下shuiyan,我在kernel内选择了:
<*> NTFS file system support
NTFS write support
怎么还是不能支持对NTFS文件系统的write了,mount了NTFS文件系统后,只能是read only,
要怎么样才能完全的支持NTFS文件系统呢???
谢谢各位的回复:)
问题解决了,shuiyan说的对,我在mount的时候没有加-t vfat,而是mount自己默认的一种文件系统(可能是MSDOS,因为我在kernel配置中选择了支持这种文件系统),所以mount后的结果就是MSDOS FS了,文件名只能是8+3。哈哈
解决的方法是在mount时主动指明文件系统的类型:
mount -t vfat
但是我还是有些迷惑,难道vfat文件系统,也可以用MSDOS FS来mount吗?如果是的话,那就是MSDOS FS能完全兼容VFAT,这好像说不过去。