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

[AU3基础] 在inut里写一个文件路径,如何判断是有效的文件路径[已解决]

 火.. [复制链接]
发表于 2011-8-12 22:25:39 | 显示全部楼层
回复  飘云


    我想到一个方法,其实可以把路径当作字符串来对待,验证字符串中是否包含有“\”来判 ...
xwt620 发表于 2011-8-8 22:31


以“\”把路径划分成组数,读取最后一行字符串,再返回字符串(文件夹或文件)是否存在。
fuldho 发表于 2011-8-12 18:20


不行。如果是根目录,比如D:,后面是没有“\”的,所以还要区分一下。
提供一下我原来写的一个程序的部分源代码,希望可以有所帮助。
-----------------------------------------------------------------------------
;定义RTX切换Tab分页中的相关函数;
Func rtxswitch()
        Select
                Case @GUI_CtrlId=$Button4
                        While 1               
                                $rtxdir = FileSelectFolder("请选择RTX安装文件夹:", "")
                                If $rtxdir=''  Then Return                                       
                                Select
                                        Case StringLen("$rtxdir")=3
                                                If  FileGetAttrib($rtxdir)= "D" And FileExists($rtxdir&'RTX.exe') Then
                                                        GUICtrlSetData($Input1,$rtxdir)
                                                        ExitLoop
                                                Else
                                                        MsgBox(64, "提示:", "你选择的RTX安装路径不正确,请重新选择!")                                                                               
                                                EndIf
                                        Case StringLen("$rtxdir") > 3
                                                If  FileGetAttrib($rtxdir)= "D" And FileExists($rtxdir&'\RTX.exe') Then
                                                        GUICtrlSetData($Input1,$rtxdir)
                                                        ExitLoop
                                                Else
                                                        MsgBox(64, "提示:", "你选择的RTX安装路径不正确,请重新选择!")
                                                EndIf                                                       
                                EndSelect
                        WEnd                       
---------------------------------------------------------------------------------------
 楼主| 发表于 2011-8-12 23:07:17 | 显示全部楼层
想了几天了,没有一个好方法,不知道正则解决这个问题是不是会简单点
发表于 2011-8-13 02:44:45 | 显示全部楼层
如果你能把这几天时间花到学正规上,我相信你在正规已经入门了!
相信我,别看正规看起来是似乎很费劲,其实学一点它的基础运用是很容易的!

但是,像你上面的代码,不用正则也可以简化的:
 If StringInStr($rtxdir,"d:") Then
                                If FileExists($rtxdir&'RTX.exe') Or FileExists($rtxdir&'\RTX.exe') Then
                                                           GUICtrlSetData($Input1,$rtxdir)
                                                        Endif
                                                        Else
                                                        MsgBox(64, "提示:", "你选择的RTX安装路径不正确,请重新选择!")                                                                                
                                                        EndIf 
还有,我不知道你用的什么版本的AU3,至少你上面的代码,
如果在我机器上运行,肯定会报错的!
发表于 2011-8-13 03:00:43 | 显示全部楼层
如果你想验证一串字符是否符合WINDOWS文件夹命名要求
可用下面的正则进行简单验证:
If StringRegExp ($Str,'[^\w]',0) Then 
MsgBox(64, "提示:", "你输入的文件名夹不可用!")  
Else
MsgBox(64, "提示:", "你输入的文件夹名可用!")  
Endif

上面正则是验证输入的变量是否存在字母、数字或下划线以外的字符。
如果你还想加上“- .”等符合要求的特殊字符,可以在“\w”后加上“\.\-”等等。
 楼主| 发表于 2011-8-15 21:53:59 | 显示全部楼层
感觉在这个问题上纠结不清,还不如用FileSaveDialog ()简单。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-3 12:58 , Processed in 0.070581 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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