永发信息网

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
全部回答
  • 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯