我想知道是否有人可以帮助我一个vb6函数,它将删除目录内的所有文件(不包括子目录)。删除目录中的所有文件vb6
回答
一号线,使用VB6声明Kill
Kill "c:\doomed_dir\*.*"
的help topic says“在Microsoft Windows,杀支持使用多字符(*)和单字符(?)通配符的指定多个文件“。
另外 - 我宁愿避免Microsoft脚本运行时(包括FileSystemObject)。根据我的经验,在用户机器上偶尔会出现这种情况,这可能是因为他们的IT部门对病毒有偏见。
我认为这应该工作:
Dim oFs As New FileSystemObject
Dim oFolder As Folder
Dim oFile As File
If oFs.FolderExists(FolderSpec) Then
Set oFolder = oFs.GetFolder(FolderSpec)
'caution!
On Error Resume Next
For Each oFile In oFolder.Files
oFile.Delete True 'setting force to true will delete a read-only file
Next
DeleteAllFiles = oFolder.Files.Count = 0
End If
End Function
我在“Dim oFs As New FileSystemObject”上收到错误“用户定义类型未定义” – zSynopsis 2009-09-23 15:54:26
这是因为您需要添加对FileSystemObject的引用以使用它..我不记得是什么确切的参考名称是。 – Corazu 2009-09-23 16:05:45
“要使用FileSystemObject,您必须在Project References对话框中为您的项目选择Microsoft Scripting Run-time。”根据: http://support.microsoft.com/kb/186118 – Alex 2009-09-24 08:40:36
我没有测试过所有情况,但它应该工作。它应该删除每个文件,如果文件被锁定或者你没有访问权限,你应该得到错误70被捕获,你会得到一个中止,重试或忽略框。
Sub DeleteAllFilesInDir(ByVal pathName As String)
On Error GoTo errorHandler
Dim fileName As String
If Len(pathName) > 0 Then
If Right(pathName, 1) <> "\" Then pathName = pathName & "\"
End If
fileName = Dir(pathName & "*")
While Len(fileName) > 0
Kill pathName & fileName
fileName = Dir()
Wend
Exit Sub
errorHandler:
If Err.Number = 70 Then
Select Case MsgBox("Could not delete " & fileName & ". Permission denied. File may be open by another user or otherwise locked.", vbAbortRetryIgnore, "Unable to Delete File")
Case vbAbort:
Exit Sub
Case vbIgnore:
Resume Next
Case vbRetry:
Resume
End Select
Else
MsgBox "Error deleting file " & fileName & ".", vbOKOnly Or vbCritical, "Error Deleting File"
End If
End Sub
+1同情,因为我不认为这当之无愧-1。虽然“Kill”&pathname&“\ *。*”肯定比较短。 – MarkJ 2009-09-24 09:08:45
这似乎是脚本运行FileSystemObject的公司的DeleteFile方法也支持通配符,因为这对我的作品:
Dim fs As New Scripting.FileSystemObject
fs.Deletefile "C:\Temp\*.jpg", true
这种方法比@Corazu建议的方法控制较少,但可能在某些一些实用案例。
- 1. 删除目录中的所有文件
- 2. VB6列表和删除所有文件在目录
- 3. 删除目录及所有文件中
- 4. 删除目录和所有子目录中的特定文件
- 5. 删除目录中的所有文件,但保留目录?
- 6. 空目录(删除所有文件)
- 7. 删除所有文件,但不目录
- 8. 删除所有macosx目录中的所有svn文件
- 9. 如何删除所有目录中的所有文件?
- 10. 脚本蝙蝠删除所有文件和目录中的所有目录c:\
- 11. 将所有未记录的文件删除到Git目录中?
- 12. 删除所有文件和文件夹,但排除目录
- 13. PHP删除的目录都是空的所有文件和所有子目录
- 14. Codeigniter:删除所有文件后删除目录
- 15. 无法删除NetBeans中的servlet目录中的所有文件
- 16. 删除所有子目录和子文件而不删除父/根目录?
- 17. 蝙蝠文件删除除最后创建的所有目录
- 18. 删除除4个最新目录以外的所有文件
- 19. 删除路径中的所有目录
- 20. 如何用C++删除目录及其中的所有文件?
- 21. 的Objective-C:从目录中删除所有文件
- 22. 使用Python删除目录中的所有文件
- 23. 如何删除目录中空的所有文件?
- 24. 如何删除某个特定目录中的所有文件
- 25. 自动删除目录中的所有文件?
- 26. 查找并删除目录中的所有核心文件
- 27. 如何使用批次删除目录中的所有文件?
- 28. 从所有目录中删除的.svn文件
- 29. 从目录中的所有文件名删除空格 - Java
- 30. 删除Git Repo目录中所有以前版本的文件
我总是看起来过于复杂......我应该记住这一点。 – Corazu 2009-09-23 17:40:37
在Access 2000中,如果该目录中的一个文件被锁定(或打开),则使用带有Kill命令的“*。*”通配符将会失败。 – Spidermain50 2011-09-09 19:19:54