补充更正一下,是因为文件名字中前面含有==,如“==精美图文==”这样的文件夹,获取短文件名会失败,AFAN帮助解决 下!{:face (229):}
回复 121# 卫和谐
没问题啊~
本帖最后由 卫和谐 于 2010-12-3 10:53 编辑
你加密后,解密时试,加密时可以!如“==精美图文==.”
回复 123# 卫和谐
你指的加密是?
是我说的不明白,我是说加点(命名)和不加点(重命名)!{:face (303):}
回复 125# 卫和谐
测试了,完全没问题。
其它的文件名试过吗?还是都不行?那你的系统应该是Win7?
在U盘上建个名字如“==精美图文==.”的文件夹,你再获取它的文件名试 一下!
回复 127# 卫和谐
试过了,正常
邪门了,怎么我的不行,在硬盘分区的话就正常!
你好,我发现你写的那个UDF 有一个很有意思的现象。
情况1:直接双击桌面下的AU3文件,可以得到正确的短文件名
情况2:在SCITE编辑器里按F5运行,得到 0
情况3:编译好的文件,直接运行,得到正确的短文件名
情况4:加了参数运行这个程序,得到 0
猜想,是不是加参数运行与在SCITE编辑器里运行, 是同一种环境。。
不知道 AFan 有没有时间改改呢, 谢谢了。
回复 130# chenronting
我刚才试了一下,我这是正常的…
情况4不知是如何测试的,猜想可能和工作目录有关
本帖最后由 chenronting 于 2010-12-12 20:10 编辑
回复 131# afan
就是加上参数, 不管什么, 参考一下下面的代码If $CmdLine <> 0 Then
If $CmdLine = 'RunByCustomers' Then
$TabSheet1State = 0
Else
$TabSheet1State = 1
_FTPConnection()
EndIf
Else
_FTPConnection()
EndIf而我用BAT 运行这个程序加上参数, 就会得不到短文件名
如果直接运行程序, 就可以得到正确的短文件名
BAT文件内容维修记录工具.exe RunByCustomers
回复 132# chenronting
还是正常
回复 133# afan
谢谢, 我用别的办法解决了, 不过不是很完美, 唉, 可能是环境的问题吧。郁闷。While $_duan8 = 0
For $_duan8I = 1 To 6
$_duan8 = FileGetLongName("D:\大众电~" & $_duan8I)
If Not @error Then
If StringCompare($_duan8, $_weizi & $_filename) = 0 Then
$_duan8 = '大众电~' & $_duan8I
ExitLoop (2)
EndIf
EndIf
Next
If $_duan8I >= 6 Then Exit (MsgBox(4096, '提示', '没有找到保存数据的文件夹,程序装退出', 3));如果循环完就退出
WEnd
蛮不错的,看看。