不要保存短文件名在注册表、文件、和数据库中

今天在MSDN看到一个好文章,就把它翻译出来的
不要保存短文件名在注册表、文件、和数据库中
长文件名和打印名字是Windows NT和Windows 95中引入的。当一个应用程序使用长文件名去创建一个文件或一个目录,系统自动生成一相应的别名,这个文件或目录别名是采用标准的8.3格式。(译者注,主要是为了兼容DOS和其它一些应用程序)
一个应用程序应该必须从不依靠自动生成的短文件,应用程序不能把这个短文件名记录到注册表、文件、和数据库中,并且为了以后的使用。相反,应用程序应该记录长文件名并且要加上引号到注册表、文件、和数据库中。
举个例子,假如一个应用程序写了两个文件,分别是"THIS IS A LONG NAME1.TXT"和"THIS IS A LONG NAME ALSO.TEXT"。系统为一个文件生成的短文件名叫"THISIS~1.TXT",为第二个文件生成的短文件名叫"THISIS~2.TXT"。应用程序把"THISIS~1.TXT"保存到注册表中并且把这两个文件删除。假如用户后来从备份的介质中得到了这两个文件,并且在拷贝这个两个文件到原路径的时候把顺序同原来的相反,那么系统就会为"THIS IS A LONG NAME ALSO.TXT"生成"THISIS~1.TXT"短文件,而"THISIS~2.TXT"短文件把指向的是"THIS IS A LONG NAME1.TXT"文件。假如用户从先前的注册表中读取已经保存的文件名,事实上它得到了一个错误的文件。这个问题的解决方法就在用带引号的长文件名保存到注册表中。

English version:Do Not Store Short File Names in the Registry, Files, or Databases

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值