我正在尝试删除今天尚未保存的文件夹中的所有文件。
该文件夹只包含 .csv
和 .txt
文件类型,因此我创建的代码只删除这些类型。有没有办法删除任何文件类型?
这是我现在的代码:
Sub delete()
Dim MyFolder As String
Dim MyFileTxt As String
Dim MyFileCSV As String
MyFolder = "C:\Users\Desktop\pdf_converter_test"
MyFileTxt = Dir(MyFolder & "\*.txt")
MyFileCSV = Dir(MyFolder & "\*.csv")
Do While FileDateTime(MyFolder & MyFileTxt) <> Date
On Error Resume Next
If FileDateTime(MyFolder & MyFileTxt) <> Date Then
Kill MyFolder & MyFileTxt
MyFileTxt = Dir
End If
Loop
Do While FileDateTime(MyFolder & MyCSV) <> Date
On Error Resume Next
If FileDateTime(MyFolder & MyFileCSV) <> Date Then
Kill MyFolder & MyFileCSV
MyFileCSV = Dir
End If
Loop
End Sub
循环似乎永远存在,因此Do While条件存在问题。但它也不会删除我想要的文件。
非常感谢任何帮助。谢谢。
答案 0 :(得分:5)
实现您想要的最简单的方法。这将删除今天尚未保存的任何文件类型,即修改日期与今天不同。
Sub Sample()
Dim sPath As String
Dim objFSO As Object, objFolder As Object
Dim objfile As Object
'~~> Change as needed
sPath = "C:\Users\Siddharth Rout\Desktop\Test\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sPath)
For Each objFile In objFolder.Files
If Format(objFile.DateLastModified, "DD-MM-YYYY") <> Format(Date, "DD-MM-YYYY") Then
Kill objFile
End If
Next objFile
End Sub