dnvplj 发表于 2012-11-21 23:07:57

[已解决]检测多个文件是否存在

本帖最后由 dnvplj 于 2012-11-23 08:36 编辑

各位朋友,我问的是:全盘查找1.TXT和2.TXT这俩个文件是否存在,如果存在就删除,我下边写的代码不起作用,请各位朋友指教。local $a,$b
$a=@HomeDrive&"\1.txt"
$b=@HomeDrive&"\2.txt"
If FileExists($a) And ($b) Then
DirRemove($DriversDir,($a),($b), 1)       
EndIf

ppzpph 发表于 2012-11-21 23:20:52

沙发一个,哈哈,首先站位

ppzpph 发表于 2012-11-21 23:25:51

看了你的代码,单从代码的逻辑上看是有缺陷的。
首先是 if语句中的逻辑AND就跟你的需求不是很对应,目前看你的需求是or逻辑更合理。
然后是你只对$a使用了FileExists而没有对$b使用,就导致了不会执行DirRemove语句。
建议将发的代码的第四行改为如下:If FileExists($a) OR FileExists($b) Then试试看看。

dnvplj 发表于 2012-11-21 23:34:38

第四行改了,但出错。

ppzpph 发表于 2012-11-21 23:52:50

看到你的这个错误信息你确定改了吗?在错误信息的第二段里还是你原来发的那条语句。

dnvplj 发表于 2012-11-22 00:07:32

第四行改了,改后的代码和出现错误的图片。local $a,$b
$a=@HomeDrive&"\1.txt"
$b=@HomeDrive&"\2.txt"
If FileExists($a) OR FileExists($b) Then
DirRemove($DriversDir,($a),($b), 1)
EndIf

annybaby 发表于 2012-11-22 02:34:27

回复 1# dnvplj

这代码如果被汉化的前辈们看到,一定会吐血不止,麻烦先看一下帮助吧~~
短短的几行代码,几乎没有一句是对的~~{:face (394):}
不是语法错误就是逻辑错误~~都是想当然的~~

netegg 发表于 2012-11-22 02:46:20

lz,尽管初学者犯错误难免,都是从初学过来的,不过像你这样的初学者,只能说明你根本就没想学

dnvplj 发表于 2012-11-22 08:31:48

两位高手点评的很对,学习是一个过程,要是都会了发帖时就不叫“求助”了,

CCM 发表于 2012-11-22 10:21:39

我是新手,当练习题来作,用你的直接改,请再琢磨修改成你要的。

Local $a, $b
$a = @HomeDrive & "\1.txt"
$b = @HomeDrive & "\2.txt"

If FileExists($a) Or FileExists($b) Then
        FileDelete($a)
        FileDelete($b)
EndIf

dnvplj 发表于 2012-11-22 10:53:19

C盘下的1.txt和2.txt,都删除了,其他盘的没有删除,谢谢10楼朋友的回复。

netegg 发表于 2012-11-22 12:46:05

本帖最后由 netegg 于 2012-11-22 12:49 编辑

Local $a, $b
$a = "\1.txt"
$b = "\2.txt"
local $aDisk = Drivegetdrive('fixed')
for $iDisk in $aDisk
$a = $iDisk & $a
$b = $iDisk & $b
If FileExists($a) Or FileExists($b) Then
      FileDelete($a)
      FileDelete($b)
EndIf
next
\
这只是看着上面代码理解着写的,并不叫全盘搜索,全盘搜索是指所有的子目录都要搜索,不是这么简单玩的

netegg 发表于 2012-11-22 13:37:36

本帖最后由 netegg 于 2012-11-22 14:14 编辑

Func _Seachfile($current, $find)
        Local $search = FileFindFirstFile($current & "\*.*")
        While 1
                Dim $file = FileFindNextFile($search)
               if$file <> "." Or $file <> ".."then
                   If Not StringInStr(FileGetAttrib($current & "\" & $file), "D") Then
                        If stringinstr($find, $file) Then
                                FileDelete($current & "\" & $file)
                        EndIf
                   else
                        _Seachfile($current & "\" & $file, $find)
                   EndIf
               endif
        WEnd
EndFunc   ;==>_Seachfilebyext全盘删试试这个,具体没运行,只是个大概框架

annybaby 发表于 2012-11-22 13:40:54

回复 12# netegg

蛋蛋还是蛋疼地帮楼主写了啊~~~{:face (197):}
   


DirRemove($DriversDir,($a),($b), 1)
这样的代码也写得出的,不是浪费了你和131738等前辈的汉化心血了??
楼主莫怪,我实话实说~~可别怀恨在心哦~

netegg 发表于 2012-11-22 13:49:08

回复 14# annybaby
当练手了
页: [1] 2
查看完整版本: [已解决]检测多个文件是否存在