Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否删除旧的(24小时前)VB.NET?_Vb.net_File_Time_Delete File - Fatal编程技术网

是否删除旧的(24小时前)VB.NET?

是否删除旧的(24小时前)VB.NET?,vb.net,file,time,delete-file,Vb.net,File,Time,Delete File,我有以下代码用于检查临时文件夹文件的大小,还有一个代码用于删除它们: TemporaryFilesSize.Text = 0 For Each foundFile As String In My.Computer.FileSystem.GetFiles( _ My.Computer.FileSystem.SpecialDirectories.Temp, _ Microsoft.VisualBasic.FileIO.SearchOption.Sear

我有以下代码用于检查临时文件夹文件的大小,还有一个代码用于删除它们:

    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小时前创建的文件的大小或删除文件


我在stackoverflow上找到了很多答案,但在java、php中…

您可以在FileInfo类中使用CreationTime属性来获取创建时间。如果该时间小于DateTime.Now.AddDays(-1),则可以使用System.IO.File.Delete删除该文件。当然,要删除该文件,您需要具有所需的权限。您可以阅读更多有关删除操作的信息

但是,您发送的代码似乎已损坏。对于长度为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 
My.Computer.FileSystem.GetFiles()中的每个foundFile作为字符串的
_
My.Computer.FileSystem.SpecialDirectories.Temp_
Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories,“***”)
Dim filesizeinbytes As System.IO.FileInfo=My.Computer.FileSystem.GetFileInfo(foundFile)
如果filesizeinbytes.CreationTime

另外,最好使用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())
Dim di作为新的DirectoryInfo(“yourDir”)
Dim files=di.GetFiles()
files.aspallel().Where(函数(f)f.CreationTime
上面代码中使用的类具有您需要的信息。太好了!!代码工作!!什么是try-catch块?我认为代码对我来说很好!它对我来说是临时文件大小4.11GB,因为filesizeinbytes是一个双字节,并且有+not&(使用vb.net 2010)