gfuchao 发表于 2011-3-15 20:18:21

删除文件及子目录,除自身目录!

DirRemove("c:\123\",1)

如果这样写的话,就连123自身目录,也会删除,

除了 把123目录删除了,再新建. 的办法

gfuchao 发表于 2011-3-15 20:21:29

在线等,大家给个思路,参考下.

www378660084 发表于 2011-3-15 20:46:07

我这有vbs的,你参考下Set fso=CreateObject("scripting.filesystemobject")
Set dir=fso.GetFolder("C:\123")
For Each d In dir.SubFolders
        d.Delete True
Next
For Each f In dir.Files
        f.Delete true
Next

gfuchao 发表于 2011-3-15 20:52:00

我这有vbs的,你参考下
www378660084 发表于 2011-3-15 20:46 http://www.autoitx.com/images/common/back.gif


不行的`

kevinch 发表于 2011-3-15 21:00:29

$fso=objcreate("scripting.filesystemobject")
$dir=$fso.GetFolder("C:\123")
For $d In $dir.SubFolders
      $d.Delete(True)
Next改改三楼的{:face (396):}

gfuchao 发表于 2011-3-15 21:03:40

改改三楼的
kevinch 发表于 2011-3-15 21:00 http://www.autoitx.com/images/common/back.gif


   删除了,子目录,但,文件没删不了了!

gfuchao 发表于 2011-3-15 21:04:55

FileRecycle(@UserProfileDir & "\Local Settings\Temp\*.*")

我这样试了试,成功了

但是删了不系统下的, @UserProfileDir & "\Local Settings\Temp\*.*东西!

www378660084 发表于 2011-3-15 21:08:02

;你把删文件的加上不就把文件删了.....................................
$fso=objcreate("scripting.filesystemobject")
$dir=$fso.GetFolder("C:\123")
For $d In $dir.SubFolders
      $d.Delete(True)
Next
For $d In $dir.files
      $d.Delete(True)
Next

3mile 发表于 2011-3-15 21:23:31

同样的问题看到过很多次了,难道就不会先搜索一下论坛?
难道每次都不思考,不搜索就马上跑出来提问?
_filedelete(@ScriptDir&"\backup",'*.jpg',0)
ShellExecute(@ScriptDir&"\backup")

Func _filedelete($path, $ext = '*.*', $flag = 0);_filedelete(路径,[[文件类型],0=不包括子目录,1=包括子目录(当包括子目录时只能用*.*)])
      Local $reulst,$abc
      If StringRight($path, 1) <> "\" Then $path = $path & "\"
      If $flag = 0 Then
                $reulst = FileDelete($path&$ext)
                Return $reulst
      ElseIf $flag = 1 And $ext = '*.*' Then
                $search = FileFindFirstFile($path&$ext)
                If $search = -1 Then
                        Return SetError(2)
                EndIf
                While 1
                        $file = FileFindNextFile($search)
                        If @error Then ExitLoop
                        $abc&=$path&$file&"|"
                        If FileGetAttrib($path&$file)='D' Then
                              DirRemove($path&$file,1)
                        Else
                              FileDelete($path&$file)
                        EndIf
                WEnd
                FileClose($search)
      EndIf
EndFunc   ;==>_filedelete

afan 发表于 2011-3-15 21:41:58

删了再建不是最好的办法吗?

gfuchao 发表于 2011-3-15 21:57:39

问题解决了,哈哈#Include <File.au3>

$path=@UserProfileDir & "\Local Settings\Temp\"
$file=_FileListToArray(@UserProfileDir & "\Local Settings\Temp\")

For $i = 1 To $file
       
        DirRemove($path & $file[$i],1)
        FileDelete($path & $file[$i])
               
        Next这样,既简单!不过搞的我头都大了,试了好几种办法!最后利用FileListToArray解决了

我刚开始就想到了,删除再建!

因为,里边的某些文件系统正在调用无法删除,呵呵

其实,很简单,用批处理 del /s *.* 就能搞定

也只是为了学习au3,开阔一下自己的思路而已!

谢谢大家
页: [1]
查看完整版本: 删除文件及子目录,除自身目录!