vb怎么删除文件夹里面的所有文件
已知C:\文件\abc有些文件和文件夹,想用VB删除我应该要怎么写删除后我想用c:\abc复制到C:\文件里面应该怎么写...
已知 C:\文件\abc 有些文件和文件夹,想用VB删除 我应该要怎么写
删除后我想用c:\abc 复制到C:\文件里面 应该怎么写 展开
删除后我想用c:\abc 复制到C:\文件里面 应该怎么写 展开
4个回答
展开全部
复制进去就可以用,自己建个按钮控件
Option Explicit
Sub KillFile(FilePath)
'无效
'--------------------------
'对目录下的所有文件进行处理
'--------------------------
Dim FileName
'FilePath & "*.txt "
'取得FilePath目录下的第一个文件名 改变FilePath参数可以指定取得文件类型
FileName = Dir(FilePath, vbNormal + vbReadOnly + vbHidden + vbSystem + vbVolume + vbArchive)
Do While FileName <> " "
SetAttr FilePath & FileName, vbNormal '设置文件属性为全开
Print FileName
'Kill FilePath & FileName
FileName = Dir() '下一个文件
Loop
End Sub
Private Sub Command1_Click()
Dim FilePath As String '初始目录
Dim FileName As String '文件名
Dim DirName As String '子目录名
Dim DirPath() As String '保存子目录名
Dim DirSum As Integer '子目录总数
Dim i As Integer
FilePath = "A:\ " '初始目录为A盘
'----------------------------
'对目录下的所有子目录进行处理
'----------------------------
ret:
DirName = Dir(FilePath, vbDirectory) '取得FilePath目录下的第一个子目录
'如果是根目录或是子目录名 则循环至有第一个目录
Do While DirName = ". " Or DirName = ".. "
DirName = Dir()
Loop
'如果没有子目录就不运行
Do While DirName <> " "
If (GetAttr(FilePath & DirName) And vbDirectory) = vbDirectory Then '判断是否是一个文件夹或目录
DirSum = DirSum + 1
'Preserve是不改变数组以前原有的数据来重新定义数组大小
ReDim Preserve DirPath(DirSum) '重新给数组定义大小
DirPath(DirSum) = FilePath & DirName & "\ "
'Call KillFile(FilePath & DirName & "\ ") '调用删除目录下所有文件子程序
'RmDir FilePath & DirName
Else '若不是目录或文件夹则对文件进行处理
'删除本目录所有文件
'Print DirName
Kill FilePath & DirName
End If
DirName = Dir() '下一个目录或文件
Loop
'------------------------
'循环得到所有子目录
For i = i + 1 To DirSum
FilePath = DirPath(i) '改变当前路径
GoTo ret '跳回仿递归处理
Next
'------------------------------------------------------
'------------------------------------------------------
'------------------------------------------------------
'对所取得的子目录进行处理
'For i = 1 To DirSum
'Call KillFile(DirPath(i)) '调用删除目录下所有文件子程序
'Next
'删除所有剩余的空目录
For i = 0 To DirSum - 1
RmDir DirPath(DirSum - i) '删除剩下的空目录
Next
'-----------------------------------
'END
End Sub
Option Explicit
Sub KillFile(FilePath)
'无效
'--------------------------
'对目录下的所有文件进行处理
'--------------------------
Dim FileName
'FilePath & "*.txt "
'取得FilePath目录下的第一个文件名 改变FilePath参数可以指定取得文件类型
FileName = Dir(FilePath, vbNormal + vbReadOnly + vbHidden + vbSystem + vbVolume + vbArchive)
Do While FileName <> " "
SetAttr FilePath & FileName, vbNormal '设置文件属性为全开
Print FileName
'Kill FilePath & FileName
FileName = Dir() '下一个文件
Loop
End Sub
Private Sub Command1_Click()
Dim FilePath As String '初始目录
Dim FileName As String '文件名
Dim DirName As String '子目录名
Dim DirPath() As String '保存子目录名
Dim DirSum As Integer '子目录总数
Dim i As Integer
FilePath = "A:\ " '初始目录为A盘
'----------------------------
'对目录下的所有子目录进行处理
'----------------------------
ret:
DirName = Dir(FilePath, vbDirectory) '取得FilePath目录下的第一个子目录
'如果是根目录或是子目录名 则循环至有第一个目录
Do While DirName = ". " Or DirName = ".. "
DirName = Dir()
Loop
'如果没有子目录就不运行
Do While DirName <> " "
If (GetAttr(FilePath & DirName) And vbDirectory) = vbDirectory Then '判断是否是一个文件夹或目录
DirSum = DirSum + 1
'Preserve是不改变数组以前原有的数据来重新定义数组大小
ReDim Preserve DirPath(DirSum) '重新给数组定义大小
DirPath(DirSum) = FilePath & DirName & "\ "
'Call KillFile(FilePath & DirName & "\ ") '调用删除目录下所有文件子程序
'RmDir FilePath & DirName
Else '若不是目录或文件夹则对文件进行处理
'删除本目录所有文件
'Print DirName
Kill FilePath & DirName
End If
DirName = Dir() '下一个目录或文件
Loop
'------------------------
'循环得到所有子目录
For i = i + 1 To DirSum
FilePath = DirPath(i) '改变当前路径
GoTo ret '跳回仿递归处理
Next
'------------------------------------------------------
'------------------------------------------------------
'------------------------------------------------------
'对所取得的子目录进行处理
'For i = 1 To DirSum
'Call KillFile(DirPath(i)) '调用删除目录下所有文件子程序
'Next
'删除所有剩余的空目录
For i = 0 To DirSum - 1
RmDir DirPath(DirSum - i) '删除剩下的空目录
Next
'-----------------------------------
'END
End Sub
展开全部
先用VB的Kill命令加*.*的通配符进行文件删除,同时在过程头部,加入错误捕获
然后,删除文件夹
一下是函数功能实现
Function DeleteDir(ByVal StrDir As String)
on error goto err:
Kill StrDir & "\*.*" '此处的文件目录路径在最后一个位置不能为“\”
RmDir StrDir
exit function
err:
msgbox "文件无法删除!可能有文件正被占用",,"系统提示"
End Function
然后,删除文件夹
一下是函数功能实现
Function DeleteDir(ByVal StrDir As String)
on error goto err:
Kill StrDir & "\*.*" '此处的文件目录路径在最后一个位置不能为“\”
RmDir StrDir
exit function
err:
msgbox "文件无法删除!可能有文件正被占用",,"系统提示"
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的办法:
Private Sub Command2_Click()
Dim r As Long
r = Shell("cmd /c rd /s /q c:\文件")
For r = 1 To 1000000
DoEvents
Next r
MkDir "c:\文件"
r = Shell("cmd /c copy c:\abc\*.* c:\文件")
End Sub
Private Sub Command2_Click()
Dim r As Long
r = Shell("cmd /c rd /s /q c:\文件")
For r = 1 To 1000000
DoEvents
Next r
MkDir "c:\文件"
r = Shell("cmd /c copy c:\abc\*.* c:\文件")
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-17
展开全部
我不会vb 我只会C····
更多追问追答
追问
........
追答
感觉这个程序用C写比VB写好吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |