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

[AU3基础] 【已解决】如何判断多个文件或文件夹存在与否

 火... [复制链接]
发表于 2012-8-7 20:31:08 | 显示全部楼层
菜鸟学习了,多谢
发表于 2012-8-8 11:51:39 | 显示全部楼层
小弟有些晕啦     楼主简体要实现的是什么呢?
发表于 2012-8-9 14:12:35 | 显示全部楼层
回复 15# afan


    A大可是真切地希望坛友,学有所长啊。
敬佩人品!
发表于 2012-8-9 15:33:46 | 显示全部楼层
收藏。。。。。。。。。。。。
发表于 2012-8-11 09:23:28 | 显示全部楼层
看到A版回复,我也笑了。
发表于 2012-8-11 21:59:09 | 显示全部楼层
这些我估计你也懂的,我想你是要一个现成的函数吧
发表于 2012-8-11 22:00:22 | 显示全部楼层
回复 15# afan

呵呵,楼主该不会像我一样,注册后中间两年多没时间去玩AU3吧
发表于 2012-8-13 10:10:57 | 显示全部楼层
留一个记号!
发表于 2012-8-20 15:08:10 | 显示全部楼层
看到a版回复,确实太搞笑了。哈哈哈。LZ要多用功呀!!!
发表于 2015-3-4 08:54:33 | 显示全部楼层
回复 10# afan


版大,帮我检测下我的这个是哪里不对好吗?看了好久没发现错在哪里,完全是照你搬的代码,不会应用。谢谢!
;例子:
#include <Array.au3>
Local $a[4] =['C:\Users\Administrator\Desktop\王牌浏览器.lnk', 'C:\Users\Administrator\Desktop\网址导航.lnk', 'C:\Users\Administrator\Desktop\影视大全.lnk', 'C:\Users\Administrator\Desktop\电脑管家.lnk']
Local $rt = _FilesExists($a) ;检查数组例子
MsgBox(0, @Error, '全部存在返回1,否则返回0' & @LF & $rt)
$rt = _FilesExists('C:\Users\Administrator\Desktop\王牌浏览器.lnk|C:\Users\Administrator\Desktop\网址导航.lnk|C:\Users\Administrator\Desktop\影视大全.lnk|C:\Users\Administrator\Desktop\电脑管家.lnk')

MsgBox(0, @Error, '全部存在返回1,否则返回0' & @LF & $rt)
$rt = _FilesExists('C:\Users\Administrator\Desktop\王牌浏览器.lnk|C:\Users\Administrator\Desktop\网址导航.lnk|C:\Users\Administrator\Desktop\影视大全.lnk|C:\Users\Administrator\Desktop\电脑管家.lnk', 1) ;返回不存在的文件数组例子

_ArrayDisplay($rt, '不存在的文件')

Func _FilesExists($Files, $Flag =0, $aF =0)
        ;Afan 提示:检查多个文件是否存在
        ;$Files - 需检查的文件,可以是字符串或1维数组:
        ;    为字符串时,多个文件用“|”分隔
        ;    为数组时,每个元素为一个文件,同时第三个参数$aF可用
        ;$aF - 为数组时,检查的起始元素,默认为0
        ;$Flag - 需返回的结果标志。
        ;返回值:
        ;    正确 - 根据$Flag的值返回结果:
        ;       $Flag=0(默认)        全部存在返回1,否则返回0
        ;       $Flag=1                全部存在返回1,否则返回不存在的文件数组
        ;    错误 - 设置@Error非零

;~         Local $aTmp = $Files, $Start = 0
        If IsArray($Files) Then ;文件数组
                If UBound($Files, 0) > 1 Then Return SetError(1)
                If UBound($Files) < $aF Then Return SetError(2)
                $Start = $aF
        Else ;文件字符串
                $aTmp = StringRegExp($Files, '([^|\s][^|]+[^|\s])', 3)
                If @error Then Return SetError(3)
        EndIf
        If $Flag Then
                Local $sTmp = ''
                For $i = $Start To UBound($aTmp) - 1
                        If Not FileExists($aTmp[$i]) Then $sTmp &= $aTmp[$i] & '|'
                Next
                If $sTmp = '' Then Return 1
                Local $aSR = StringRegExp($sTmp, '[^|]+', 3)
                Return $aSR ;返回不存在的文件数组
        EndIf
        For $i = $Start To UBound($aTmp) - 1
                If Not FileExists($aTmp[$i]) Then Return 0
        Next
        Return 1
EndFunc   ;==>_FilesExists
发表于 2015-3-4 11:42:53 | 显示全部楼层
回复  afan


版大,帮我检测下我的这个是哪里不对好吗?看了好久没发现错在哪里,完全是照你搬的代码, ...
pyj521 发表于 2015-3-4 08:54



    第26行怎么注释掉了,那肯定就错了,取消注释既可
发表于 2015-3-4 16:42:49 | 显示全部楼层
回复 27# afan

呵呵  太谢谢了!真是不小心啊!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 22:27 , Processed in 0.067449 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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