VB里面通过文件名删除指定文件
答案:2 悬赏:30 手机版
解决时间 2021-12-23 11:56
- 提问者网友:我一贱你就笑
- 2021-12-23 01:45
有一个文件夹里面每天都会生成一个带日期的文件(txt),我想做一个小程序能自动删除昨天(不算昨天)以前的文件。谁能帮助一下,谢谢。
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-12-23 02:44
在窗体上添加一个FILELISTBOX控件,设置为不可见
Private Sub Form_Load()
On Error GoTo MyError '设置错误陷阱
Dim MyPath As String '定义要删除文件目录路径
Dim MyPattern As String '定义要删除文件类型
Dim YesterdayName, TodayName As String '定义昨天及今天的文件名
MyPath = '"D:\TempPath"
MyPattern = "*.TXT" '含日期的文件名,比方说YYYY-MM-DD.TXT
File1.Path = MyPath
File1.Pattern = MyPattern
YesterdayName = Format(DateAdd("d", -1, Date), "YYYY-MM-DD") + ".TXT" '含昨天日期的文件名
TodayName = Format(Date$, "YYYY-MM-DD") + ".TXT" '含今天日期的文件名
If File1.ListCount > 0 Then
For i% = 0 To File1.ListCount - 1
File1.ListIndex = i%
If File1.FileName <> CurrentName And File1.FileName <> CurrentName Then '如果文件名不等于今天或者昨天的文件名,则删除
Kill File1.Path + "\" + File1.FileName
End If
Next i%
End If
MyError:
File1.Refresh '全部删除完毕以后,刷新列表
End Sub
Private Sub Form_Load()
On Error GoTo MyError '设置错误陷阱
Dim MyPath As String '定义要删除文件目录路径
Dim MyPattern As String '定义要删除文件类型
Dim YesterdayName, TodayName As String '定义昨天及今天的文件名
MyPath = '"D:\TempPath"
MyPattern = "*.TXT" '含日期的文件名,比方说YYYY-MM-DD.TXT
File1.Path = MyPath
File1.Pattern = MyPattern
YesterdayName = Format(DateAdd("d", -1, Date), "YYYY-MM-DD") + ".TXT" '含昨天日期的文件名
TodayName = Format(Date$, "YYYY-MM-DD") + ".TXT" '含今天日期的文件名
If File1.ListCount > 0 Then
For i% = 0 To File1.ListCount - 1
File1.ListIndex = i%
If File1.FileName <> CurrentName And File1.FileName <> CurrentName Then '如果文件名不等于今天或者昨天的文件名,则删除
Kill File1.Path + "\" + File1.FileName
End If
Next i%
End If
MyError:
File1.Refresh '全部删除完毕以后,刷新列表
End Sub
全部回答
- 1楼网友:拾荒鲤
- 2021-12-23 03:55
option explicit
private sub command1_click()
dim myfile, mypath, myname
' 删除 d:\ 目录下的满足条件目录。
mypath = app.path & "\" ' 指定路径。
myname = dir(mypath, vbdirectory) ' 找寻第一项。
do while myname <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
if myname <> "." and myname <> ".." then
' 使用位比较来确定 myname 代表一目录。
if (getattr(mypath & myname) and vbdirectory) = vbdirectory then
if len(myname) = 12 then
myname = mid(myname, 1, 4) & "-" & mid(myname, 5, 2) & "-" & mid(myname, 7, 2) _
& " " & mid(myname, 9, 2) & ":" & mid(myname, 11, 2)
if (datediff("d", now, myname) > 5) then
shell "cmd /c rmdir.exe /s /q" & myname, vbhide
end if
end if
end if
end if
myname = dir ' 查找下一个目录。
loop
end sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯