找回密码
 加入
搜索
楼主: afan

[系统综合] 获取畸形文件夹的短文件名

 火... [复制链接]
发表于 2010-12-3 10:40:49 | 显示全部楼层
补充更正一下,是因为文件名字中前面含有==,如“==精美图文==”这样的文件夹,获取短文件名会失败,AFAN帮助解决 下!
 楼主| 发表于 2010-12-3 10:48:22 | 显示全部楼层
回复 121# 卫和谐


    没问题啊~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-12-3 10:52:46 | 显示全部楼层
本帖最后由 卫和谐 于 2010-12-3 10:53 编辑

你加密后,解密时试,加密时可以!如“==精美图文==.”
 楼主| 发表于 2010-12-3 10:54:49 | 显示全部楼层
回复 123# 卫和谐


    你指的加密是?
发表于 2010-12-3 11:24:54 | 显示全部楼层
是我说的不明白,我是说加点(命名)和不加点(重命名)!
 楼主| 发表于 2010-12-3 11:44:59 | 显示全部楼层
回复 125# 卫和谐


    测试了,完全没问题。
其它的文件名试过吗?还是都不行?那你的系统应该是Win7?
发表于 2010-12-3 11:50:23 | 显示全部楼层
在U盘上建个名字如“==精美图文==.”的文件夹,你再获取它的文件名试 一下!
 楼主| 发表于 2010-12-3 11:53:14 | 显示全部楼层
回复 127# 卫和谐


    试过了,正常
发表于 2010-12-3 12:44:58 | 显示全部楼层
邪门了,怎么我的不行,在硬盘分区的话就正常!
发表于 2010-12-12 19:50:49 | 显示全部楼层
你好,我发现你写的那个UDF 有一个很有意思的现象。
情况1:直接双击桌面下的AU3文件,可以得到正确的短文件名
情况2:在SCITE编辑器里按F5运行,得到 0
情况3:编译好的文件,直接运行,得到正确的短文件名
情况4:加了参数运行这个程序,得到 0

猜想,是不是加参数运行与在SCITE编辑器里运行, 是同一种环境。。
不知道 AFan 有没有时间改改呢, 谢谢了。
 楼主| 发表于 2010-12-12 20:01:16 | 显示全部楼层
回复 130# chenronting


    我刚才试了一下,我这是正常的…
情况4不知是如何测试的,猜想可能和工作目录有关
发表于 2010-12-12 20:08:33 | 显示全部楼层
本帖最后由 chenronting 于 2010-12-12 20:10 编辑

回复 131# afan


    就是加上参数, 不管什么, 参考一下下面的代码
If $CmdLine[0] <> 0 Then
        If $CmdLine[1] = 'RunByCustomers' Then
                $TabSheet1State = 0
        Else
                $TabSheet1State = 1
                _FTPConnection()
        EndIf
Else
        _FTPConnection()
EndIf
而我用BAT 运行这个程序加上参数, 就会得不到短文件名
如果直接运行程序, 就可以得到正确的短文件名
BAT文件内容
维修记录工具.exe RunByCustomers
 楼主| 发表于 2010-12-12 20:16:23 | 显示全部楼层
回复 132# chenronting


    还是正常
发表于 2010-12-12 22:11:39 | 显示全部楼层
回复 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
发表于 2010-12-25 07:02:02 | 显示全部楼层
蛮不错的,看看。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 17:36 , Processed in 0.074898 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表