VB中特殊文件夹的长文件名转换为短文件名.
答案:4 悬赏:60 手机版
解决时间 2021-01-24 21:23
- 提问者网友:嘚啵嘚啵
- 2021-01-24 07:01
VB中特殊文件夹的长文件名转换为短文件名.
最佳答案
- 五星知识达人网友:动情书生
- 2021-01-24 07:43
我看不懂,我做VB编程,QQ:199263386
全部回答
- 1楼网友:走死在岁月里
- 2021-01-24 10:52
长文件名转换成8.3短文件名:
对于新文件:
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
Print #1, i
Close #1
Next
End Sub
当然,在大多数情况下不会像我们的测试一...长文件名转换成8.3短文件名:
对于新文件:
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
Print #1, i
Close #1
Next
End Sub
当然,在大多数情况下不会像我们的测试一样变态,顶多也就到 ABCDEF~2.TXT 这种程度。
你可以编写一个程序来完成转换,多数时间都能工作,只是不能保证结果绝对正确罢了。
- 2楼网友:第四晚心情
- 2021-01-24 09:26
Declare Function SHGetShortPathName Lib "shell32" Alias "#92"(byva lszPath as String ) as Long
- 3楼网友:野慌
- 2021-01-24 08:59
长文件名转换成8.3短文件名: 对于新文件: 1 取长文件名中头6个合法字符,改为大写,加 ~1,取最后一个句点之后的3个合法字符作扩展名。 形成 abcdef~1.txt 这样的名字。 2 检查该目录中 abcdef~1.txt 是否存在,若不存在就是它了。若存在 改为 abcdef~2.txt 再检查,直到出现不重复的文件名。 3 如果第二步重试次数太多(超过4次),就采用生成随机数的方式调整 abcdef 这一部分形成 abf424~1.txt 这样的名字。 4 把长文件名和短文件名同时写到目录里面。 在获取文件名的时候,一律采用从目录里读出的方式。 因为有的文件没有短文件名,有的软件会单独修改短文件名而不改长文件名。所以对于一个已存在的长名文件,不可能有任何方法能算出他的短文件名来。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯