对于新文件:
1
取长文件名中头6个合法字符,改为大写,加
~1,取最后一个句点之后的3个合法字符作扩展名。
形成
ABCDEF~1.TXT
这样的名字。
2
检查该目录中
ABCDEF~1.TXT
是否存在,若不存在就是它了。若存在
改为
ABCDEF~2.TXT
再检查,直到出现不重复的文件名。
3
如果第二步重试次数太多(超过4次),就采用生成随机数的方式调整
ABCDEF
这一部分形成
ABF424~1.TXT
这样的名字。
4
把长文件名和短文件名同时写到目录里面。
在获取文件名的时候,一律采用从目录里读出的方式。
因为有的文件没有短文件名,有的软件祥核烂会单独修改短文件名而不改长文件名。所以对氏历于一个已存在的长名文件,不可能有任何方法能算出他的短文件名来。
不信你可以编写一段程序在同一个目录里产生几百个前面相同的文件名。
你就明白了在特殊情况下,不调用
API,
没有任何办法知道一个文件的短文件名。
下面这段Basic程序就可以做这个实验谨漏:
Sub
aa()
For
i
=
1
To
256
Open
"c:\test\ab
cd
ef.
a."
&
Rnd()
&
i
&
".u.
aa
c
u"
For
Output
As
#1
#1,
i
Close
#1
Next
End
Sub
当然,在大多数情况下不会像我们的测试一样变态,顶多也就到
ABCDEF~2.TXT
这种程度。
你可以编写一个程序来完成转换,多数时间都能工作,只是不能保证结果绝对正确罢了。
一般是因病毒感染或程序设计错误造成启动项路径有误造成的。
解决这个问题的步骤如下:
1、首先,打开运行对话框,方法有两种:一种是依次点击“开始”——“运行”来打开。
2、然后,在运行对话框中,肢巧输入:msconfig,然后回车,打开系统配置实用程序。
3、然后在系统配置实用程序中,切换到“启动”选项卡,该窗口中会列出系统开机自启动程序的相关信息。
4、然后在该列表中的命令项中,就应该能够找到一条内容为“C:\Documents”的程序信息项,然后取消其前面的复选框,点燃饥逗击“确定”保存修改并退出皮卖。
5、在d出的提示信息框中,选择“重新启动”,电脑将重启,同时,会发现C:\Documents开机自启的问题已经不存在了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)