【发布时间】:2018-12-14 20:29:13
【问题描述】:
我正在尝试为自己创建一个检查“C:\Logs”目录的迷你工具
在 C:\Logs 中,我有许多随机名称的文件夹。我希望能够检查 C:\Logs 内的所有文件夹,并在这些文件夹中检查创建的日期是否过时,以便我可以通过编程方式删除它们。
这是我目前所拥有的......
Try
Dim CreatedDate As DateTime
Dim Todays_Date As DateTime = Today.Date
Dim DirInfo As DirectoryInfo
Dim Time_Span As TimeSpan
Dim DirList As New List(Of String)
For Each SubDir As String In Directory.GetDirectories("C:\Logs")
DirInfo = New DirectoryInfo(SubDir)
CreatedDate = DirInfo.CreationTimeUtc
Time_Span = Todays_Date - CreatedDate
If Time_Span .Days > 10 Then
DirList .Add(SubDir)
DirInfo.Delete(True)
Else
'No Dir found or Dir is not > 10
End If
Next
End Try
目前这会从 C:\Logs 中获取所有文件夹,并删除任何超过 10 天的文件夹。但是,我只想在 C:\Logs\ ****
中删除 FILES因为我有一个来自 C:\ via 的文件夹列表:
For Each SubDir As String In Directory.GetDirectories("C:\Logs")
我是否必须这样做才能获取这些文件夹中的所有文件?
For Each SubFile As String In Directory.GetFiles(SubDir)
'Check date of each file and delete if older than 10 days?
Next
【问题讨论】:
-
在实际状态下,您只会读取
C:\Logs的根目录中的子文件夹。如果你想浏览整个目录树,你必须编写一个递归函数,即:一个调用自身的函数。示例:support.microsoft.com/en-us/help/306666/… -
我真的很讨厌递归函数哈哈!我的教授是对的,但有时它们很有用
-
递归函数可能很危险,但在某些情况下是必要的。
-
是真的吗?我的印象是很多文件夹是文件夹
C:/Logs,并且结构不超过两个文件夹。是吗? -
For Each SubDir As String In Directory.GetDirectories("C:\Logs","*",SearchOption.AllDirectories)怎么样
标签: vb.net visual-studio vb.net-2010