在VB.NET中删除特定文件

时间:2013-04-01 19:00:09

标签: vb.net file-io

在尝试从Flash驱动器中的文件夹中提取所有文件并将它们放在计算机上的文件夹中之后,我试图找出Visual Basic上的代码。我怎么能让这个程序删除计算机上文件夹中前一个日期尚未修改的所有文件?

这是我到目前为止所做的:

Imports System.IO

Public Class frmExtractionator

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

        Dim sourceDirectory As String = "E:\CopierFolderforTestDriveCapstone"
        Dim archiveDirectory As String = "E:\FilesExtracted"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

            If(Not System.IO.Directory.Exists(archiveDirectory )) Then
                System.IO.Directory.CreateDirectory(archiveDirectory)
            End If

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                File.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch eT As Exception
            Console.WriteLine(eT.Message)
        End Try

    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

这样的内容将删除自给定日期以来尚未修改的文件。

Private Sub DeleteUnmodifiedFiles(directoryName As String, modificationThreshold As Date)
    Dim folder As New DirectoryInfo(directoryName)
    Dim wasModifiedSinceThreshold As Boolean
    For Each file As FileInfo In folder.GetFiles
        wasModifiedSinceThreshold = (file.LastWriteTime > modificationThreshold)
        If (Not wasModifiedSinceThreshold) Then file.Delete()
    Next
End Sub

根据天数删除...

Private Sub DeleteUnmodifiedFiles(directoryName As String, modificationThresholdDays As Integer)
    Dim folder As New DirectoryInfo(directoryName)
    Dim thresholdDate As Date
    Dim wasModifiedSinceThreshold As Boolean
    For Each file As FileInfo In folder.GetFiles
        thresholdDate = DateTime.Now().AddDays(-1 * modificationThresholdDays)
        wasModifiedSinceThreshold = (file.LastWriteTime > thresholdDate)
        If (Not wasModifiedSinceThreshold) Then file.Delete()
    Next
End Sub