不是所有的短文件名都包含有波浪符号短文件名:特仑苏.txt = 特~1.txt你可能不知道的是总结最后
原标题:不是所有的短文件名都包含有波浪符号
短文件名:特仑苏.txt=特~1.txt想起了一句话:不是所有的牛奶都叫特仑苏 。
我想 , 大多数人都看到过Windows系统为长文件名自动生成的对应的短文件名 。
文章图片
举个例子 , 如果有一个文件名为”Longnameforfile.txt” , 则你可能会得到类似这样的短文件名”LONGNA~1.TXT” , 如果系统发现这个短文件名存在很多重复的 , 则还会生成这样的名称:”LO18C9~1.TXT” 。
从这个例子中 , 我们看到这些短文件名都有一个共同之处:它们都包含有波浪符号(~) 。
你可能不知道的是不是每个短文件名都包含有波浪符号 。
每个文件系统都有自己的一套方法来实现短文件命名 。 Windows95独占式的使用”~n”实现短文件名 。
算法类似于下图:
文章图片
WindowsNT则引入了一种名为”hexadecimalhashoverflow”的技术来实现短文件名的生成 。 然而 , 有些系统 , 比如Novell , 则采用简单的字符串截断的方式实现 。 例如 , 如果Novell系统中有一个长文件名”Longnameforfile.txt” , 则Novell会将它截断为”LONGNAME.TXT” 。
所以 , 请不要假设所有的短文件都会带有波浪符号 , 因为这并不是事实 。
这也意味着 , 如果你发现一个文件名里没有包含波浪符号 , 你就想着可以跳过对GetLongFileName的调用 , 这可不行:因为你的这一优化在Novell网络上是无效的 , 是会掉坑里去的 。
总结俱往矣 , 短文件名 , 终将还是会消失在历史的长河中 , 和我们一样 , 都会变成层土 。
想想 , 其实也挺平常的 。
最后RaymondChen的《TheOldNewThing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《Notallshortfilenamescontainatilde》
【不是所有的短文件名都包含有波浪符号短文件名:特仑苏.txt = 特~1.txt你可能不知道的是总结最后】
文章图片
- 付辛博井柏然怎么掰了 井柏然是不是Gay爱过付辛博吗?
- 为啥富人搞农业容易失败?3个无法回避的难题,不是有钱就能解决
- 黄圣依婆婆劝儿媳退出娱乐圈 原因得罪了娱乐圈里所有的演员
- 聚焦民生小案|东郊派出所迅速破获一起系列盗窃电动车案
- 债券交易员将所有赌注都押在美国债市场的巨额空头上
- 三款自主品牌黑马踏板车分享,它们“跨界,科技,叫板”无所不能
- 客观来说,开奇瑞车是不是没面子?
- 宁毅最对不起的人,不是老耿也不是刘西瓜,而是被毁掉一切的她!
- 这回不是歼-20,首架重型五代机列装服役,美国准备好接招了吗?
- 河北有望合并的两所大学, 固定资产都在30亿以上, 网友: 不可能