删除旧的(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 块删除文件也是个好主意。

反之,你可以使用LINQLINQ 为您提供干净易懂的代码。

        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())