smooth 发表于 2010-11-1 08:34:55

[已解决]使用Filedelete能否删除某一目录下的所有文件或者某一类文件?

本帖最后由 smooth 于 2010-11-9 22:37 编辑

使用Filedelete能否删除某一目录下的所有文件或者某一类文件?比如:

C:\Documents and Settings\Administrator\Application Data\*.exe

谢谢。

19377708 发表于 2010-11-1 10:22:31

完全没问题的,楼主,
示例/演示
FileDelete("D:\*.exe")
删除D盘下的所有exe文件

xyyie 发表于 2010-11-1 13:23:05

哈哈。要自己试试就知道了。

smooth 发表于 2010-11-1 16:40:24

本帖最后由 smooth 于 2010-11-1 16:48 编辑

我测试的,只能删除根目录的文件,子目录的文件并没有删除,不知道为什么。
$search = FileFindFirstFile(@AppDataCommonDir & "\*.exe")
While 1
           $file = FileFindNextFile($search)
    If @error Then ExitLoop
        FileDelete(@AppDataCommonDir & "\" & $file)
WEnd
FileClose($search)

或者:
FileDelete(@AppDataCommonDir & "\*.exe")

或者:
FileDelete("C:\Documents and Settings\All Users\Application Data\*.exe")

都是只能删除C:\Documents and Settings\All Users\Application Data目录下的exe文件,
不能删除这个目录的子目录中的exe文件,不晓得为啥了。

netegg 发表于 2010-11-1 17:58:32

搜搜udf区,有的是方法

smooth 发表于 2010-11-1 18:40:50

回复 5# netegg
我去看看,谢谢。

wgboy 发表于 2010-11-2 08:48:30

有些文件当前正在运行调用,肯定人删除不掉的啦。。

h20040606 发表于 2010-11-2 09:54:43

可以采用递归的方法来实现的

smooth 发表于 2010-11-2 16:18:40

回复 8# h20040606

愿闻其详呀。

xianhou 发表于 2010-11-2 16:25:33

先 dir /b/s > filelist.txt
然后 readline filelist.txt

h20040606 发表于 2010-11-2 17:07:47

Func __deletefile($path,$ext)
$search = FileFindFirstFile($path &"\" & $ext)
While 1
         $file = FileFindNextFile($search)
    If @error Then ExitLoop
      If FileGetAttrib($path & "\" $file)="D" Then
                        __deletefile($path & "\" $file,$ext)
                        Else
                  FileDelete($path &"\" $file)
             EndIf
WEnd
FileClose($search)


EndFunc

lxz 发表于 2010-11-2 18:39:43

Filedelete能删除文件夹里的所有文件或者某一类文件.

smooth 发表于 2010-11-9 22:33:45

本帖最后由 smooth 于 2010-11-9 22:36 编辑

搞定了!#include <File.au3>
#include <GuiListBox.au3>
#include <WindowsConstants.au3>

Findfile(@TempDir)
Func Findfile($Path)
        $aFileList = _FileListToArray($Path)
        If Not @error Then
                For $i = 1 To $aFileList
                        DirRemove($Path & '\' & $aFileList[$i], 1)
                        FileDelete($Path & '\' & $aFileList[$i])
                Next
        EndIf
EndFunc   ;==>Findfile这样是删除TempDir目录下所有文件和文件夹
页: [1]
查看完整版本: [已解决]使用Filedelete能否删除某一目录下的所有文件或者某一类文件?