Hallo!
Unter Verwendung der bereits geposteten Routinen und Nutzung der "Io.File.Move"-Methode
sollte das Verschieben der Dateien eines bestimmten Erstelldatums eigentlich kein Problem
sein.
Public Class frmFileMove
Dim fbd As New FolderBrowserDialog
Dim WithEvents btnSourceFolder As New Button With _
{.Parent = Me, .Text = "Quell-Ordner", .Width = 200}
Dim cboFileDateFrequencies As New ComboBox With _
{.Parent = Me, .Top = 50, .Width = 200}
Dim WithEvents btnDestinationFolder As New Button With _
{.Parent = Me, .Text = "Ziel-Ordner", _
.Width = 200, .Top = 100, .Enabled = False}
Dim WithEvents btnMove As New Button With _
{.Parent = Me, .Text = "Verschieben", _
.Top = 150, .Width = 200, .Enabled = False}
Private Sub btnSourceFolder_Click(sender As Object, _
e As System.EventArgs) Handles btnSourceFolder.Click
fbd.Description = "Quell-Ordner für Datei-Verschiebung"
If fbd.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
'Verteilung des Erstelldatums im Quellordner ermitteln
cboFileDateFrequencies.DataSource = _
GetFileDateCounter(fbd.SelectedPath)
btnDestinationFolder.Enabled = cboFileDateFrequencies.Items.Count > 0
btnSourceFolder.Tag = fbd.SelectedPath
btnMove.Enabled = False
End Sub
Private Sub btnDestinationFolder_Click(sender As Object, _
e As System.EventArgs) Handles btnDestinationFolder.Click
If cboFileDateFrequencies.SelectedItem Is Nothing Then Exit Sub
fbd.Description = "Ziel-Ordner für Datei-Verschiebung"
If fbd.ShowDialog = Windows.Forms.DialogResult.Cancel Then Exit Sub
If fbd.SelectedPath.ToLower = _
btnSourceFolder.Tag.ToString.ToLower Then Exit Sub
btnDestinationFolder.Tag = fbd.SelectedPath
btnMove.Enabled = true
End Sub
Private Sub btnMove_Click(sender As Object, _
e As System.EventArgs) Handles btnMove.Click
Dim c As Integer = MoveFilesByDate(btnSourceFolder.Tag.ToString, _
btnDestinationFolder.Tag.ToString, _
CDate(cboFileDateFrequencies.SelectedItem.ToString.Split("-"c)(0)))
If c > 0 Then
MsgBox(c.ToString & " Dateien sind verschoben worden")
Else
MsgBox("Fehler beim Verschieben")
End If
End Sub
Private Function MoveFilesByDate(source As String, destination As String, _
criticaldate As Date) As Integer
Try
'Ermittlung der Dateien mit dem gewählten Erstelldatum
Dim fl As List(Of String) = GetFilesByDate(source, criticaldate)
'Dateien verschieben
For i As Integer = 0 To fl.Count - 1
Dim fn As String = fl(i)
IO.File.Move(IO.Path.Combine(source, fn), _
IO.Path.Combine(destination, fn))
Next i
Return fl.Count
Catch ex As Exception
Return -1
End Try
End Function
End Class
Beitrag wurde zuletzt am 06.09.17 um 09:30:13 editiert. |