找回密码
 加入
搜索
查看: 4047|回复: 10

[AU3基础] 删除文件及子目录,除自身目录!

  [复制链接]
发表于 2011-3-15 20:18:21 | 显示全部楼层 |阅读模式
DirRemove("c:\123\",1)

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

除了 把123目录删除了,再新建. 的办法
 楼主| 发表于 2011-3-15 20:21:29 | 显示全部楼层
在线等,大家给个思路,参考下.
发表于 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
 楼主| 发表于 2011-3-15 20:52:00 | 显示全部楼层
我这有vbs的,你参考下
www378660084 发表于 2011-3-15 20:46



不行的`
发表于 2011-3-15 21:00:29 | 显示全部楼层
$fso=objcreate("scripting.filesystemobject")
$dir=$fso.GetFolder("C:\123")
For $d In $dir.SubFolders
        $d.Delete(True)
Next
改改三楼的
 楼主| 发表于 2011-3-15 21:03:40 | 显示全部楼层
改改三楼的
kevinch 发表于 2011-3-15 21:00



   删除了,子目录,但,文件没删不了了!
 楼主| 发表于 2011-3-15 21:04:55 | 显示全部楼层
FileRecycle(@UserProfileDir & "\Local Settings\Temp\*.*")

我这样试了试,成功了

但是删了不系统下的, @UserProfileDir & "\Local Settings\Temp\*.*  东西!
发表于 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
发表于 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

评分

参与人数 1金钱 +40 收起 理由
lxsh010 + 40 非常强大,好用!!

查看全部评分

发表于 2011-3-15 21:41:58 | 显示全部楼层
删了再建不是最好的办法吗?
 楼主| 发表于 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[0]
        
        DirRemove($path & $file[$i],1)
        FileDelete($path & $file[$i])
                
        Next
这样,既简单!不过搞的我头都大了,试了好几种办法!最后利用FileListToArray解决了

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

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

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

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

谢谢大家
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 11:14 , Processed in 0.078712 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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