删除旧的(24 小时)前 VB.NET?
Delete Old (24 Hours) Ago VB.NET?
我有以下检查临时文件夹文件大小的代码和另一个删除它们的代码:
TemporaryFilesSize.Text = 0
For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.SpecialDirectories.Temp, _
Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*")
Dim filesizeinbytes As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(foundFile)
TemporaryFilesSize.Text = TemporaryFilesSize.Text + filesizeinbytes.Length
Next
'Changing From Bytes To Mb Gb ...
Dim filesizeunit As String = ""
If TemporaryFilesSize.Text >= 1024 Then
filesizeunit = "Kb"
TemporaryFilesSize.Text = TemporaryFilesSize.Text / 1024
If TemporaryFilesSize.Text >= 1024 Then
filesizeunit = "Mb"
TemporaryFilesSize.Text = TemporaryFilesSize.Text / 1024
If TemporaryFilesSize.Text >= 1024 Then
filesizeunit = "Gb"
TemporaryFilesSize.Text = TemporaryFilesSize.Text / 1024
Else
End If
Else
End If
Else
filesizeunit = "Bytes"
End If
Dim filesize As Double = TemporaryFilesSize.Text
filesize = Math.Round(filesize, 2)
TemporaryFilesSize.Text = filesize
TemporaryFilesSize.Text = TemporaryFilesSize.Text & filesizeunit
有没有办法让我的代码获取更多 24 小时前.
创建的文件的大小或删除文件
我在 Whosebug 上找到了很多答案,但在 java、php...
您可以使用 FileInfo class 中的 CreationTime 属性 来获取创建时间。如果那个时间小于 DateTime.Now.AddDays(-1) 那么你可以使用 System.IO.File.Delete 来删除文件。要删除文件,您当然需要具有所需的权限。您可以阅读更多删除操作here
但是您发送的代码似乎已损坏。它将所有文件长度添加到文本框,例如三个长度为 1024 字节的文件的“102410241024”。你可以使用类似的东西。
For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.SpecialDirectories.Temp, _
Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*")
Dim filesizeinbytes As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(foundFile)
If filesizeinbytes.CreationTime < DateTime.Now.AddDays(-1) Then
System.IO.File.Delete(foundFile)
End If
TemporaryFilesSize.Text = TemporaryFilesSize.Text + filesizeinbytes.Length
Next
此外,使用 try catch 块删除文件也是个好主意。
反之,你可以使用LINQ
。 LINQ
为您提供干净易懂的代码。
Dim di As New DirectoryInfo("yourDir")
Dim files = di.GetFiles()
files.AsParallel().Where(Function(f) f.CreationTime < DateTime.Now.AddDays(-1)).ForAll(Function(f) f.Delete())
我有以下检查临时文件夹文件大小的代码和另一个删除它们的代码:
TemporaryFilesSize.Text = 0
For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.SpecialDirectories.Temp, _
Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*")
Dim filesizeinbytes As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(foundFile)
TemporaryFilesSize.Text = TemporaryFilesSize.Text + filesizeinbytes.Length
Next
'Changing From Bytes To Mb Gb ...
Dim filesizeunit As String = ""
If TemporaryFilesSize.Text >= 1024 Then
filesizeunit = "Kb"
TemporaryFilesSize.Text = TemporaryFilesSize.Text / 1024
If TemporaryFilesSize.Text >= 1024 Then
filesizeunit = "Mb"
TemporaryFilesSize.Text = TemporaryFilesSize.Text / 1024
If TemporaryFilesSize.Text >= 1024 Then
filesizeunit = "Gb"
TemporaryFilesSize.Text = TemporaryFilesSize.Text / 1024
Else
End If
Else
End If
Else
filesizeunit = "Bytes"
End If
Dim filesize As Double = TemporaryFilesSize.Text
filesize = Math.Round(filesize, 2)
TemporaryFilesSize.Text = filesize
TemporaryFilesSize.Text = TemporaryFilesSize.Text & filesizeunit
有没有办法让我的代码获取更多 24 小时前.
创建的文件的大小或删除文件我在 Whosebug 上找到了很多答案,但在 java、php...
您可以使用 FileInfo class 中的 CreationTime 属性 来获取创建时间。如果那个时间小于 DateTime.Now.AddDays(-1) 那么你可以使用 System.IO.File.Delete 来删除文件。要删除文件,您当然需要具有所需的权限。您可以阅读更多删除操作here
但是您发送的代码似乎已损坏。它将所有文件长度添加到文本框,例如三个长度为 1024 字节的文件的“102410241024”。你可以使用类似的东西。
For Each foundFile As String In My.Computer.FileSystem.GetFiles( _
My.Computer.FileSystem.SpecialDirectories.Temp, _
Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, "*.*")
Dim filesizeinbytes As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(foundFile)
If filesizeinbytes.CreationTime < DateTime.Now.AddDays(-1) Then
System.IO.File.Delete(foundFile)
End If
TemporaryFilesSize.Text = TemporaryFilesSize.Text + filesizeinbytes.Length
Next
此外,使用 try catch 块删除文件也是个好主意。
反之,你可以使用LINQ
。 LINQ
为您提供干净易懂的代码。
Dim di As New DirectoryInfo("yourDir")
Dim files = di.GetFiles()
files.AsParallel().Where(Function(f) f.CreationTime < DateTime.Now.AddDays(-1)).ForAll(Function(f) f.Delete())