vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Dateien verschieben, deren Erstelldatum in einem bestimmten Monat liegt 
Autor: Manfred X
Datum: 07.09.17 07:12

Hallo!

Du hattest nach "GetFileDateCounter" gefragt.

Wenn es um das Verschieben der Dateien eines Monats geht,
kann man wie folgt vorgehen:
Public Class frmFileMoveMonth
 
    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}
 
    Dim MonthNames As New List(Of String)
 
 
    Private Sub frmFileMove_Load(sender As System.Object, _
                                 e As System.EventArgs) Handles MyBase.Load
        MonthNames.Add(" ")
        For i As Integer = 1 To 12
            'Monatsnamen für Rückverzeigerung auflisten
            MonthNames.Add(MonthName(i, False))
        Next i
    End Sub
 
 
    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
 
        cboFileDateFrequencies.DataSource = _
            FileSystemStuff.GetFileMonthCounter(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 = cboFileDateFrequencies.SelectedItem IsNot Nothing
    End Sub
 
 
    Private Sub btnMove_Click(sender As Object, _
                   e As System.EventArgs) Handles btnMove.Click
 
        Dim parts() As String = _
             cboFileDateFrequencies.SelectedItem.ToString.Split("-"c)
        Dim m As Integer = _
             MonthNames.IndexOf(parts(1).Trim.Split(" "c)(0).Trim)
        Dim y As Integer = CInt(parts(1).Trim.Split(" "c)(1))
 
        Dim c As Integer = MoveFilesByMonth _
                                  (btnSourceFolder.Tag.ToString, _
                                   btnDestinationFolder.Tag.ToString, m, y)
 
        If c > 0 Then
            MsgBox(c.ToString & " Dateien sind verschoben worden")
        Else
            MsgBox("Fehler beim Verschieben")
        End If
    End Sub
 
 
    Private Function MoveFilesByMonth _
                     (source As String, destination As String, _
                      criticalMonth As Integer, criticalYear As Integer) As _
                      Integer
        Try
            Dim fl As List(Of String) = _
                GetFilesByMonth(source, criticalMonth, criticalYear)
 
            For i As Integer = 0 To fl.Count - 1
                Dim fn As String = fl(i) '.Split("-"c)(1).Trim
                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
 
 
    Public Function GetFilesByMonth(ByVal folder As String, _
       ByVal criticalMonth As Integer, criticalYear As Integer) As List(Of _
       String)
 
        Dim filenames As New List(Of String)
 
        For Each fi As IO.FileInfo In New IO.DirectoryInfo(folder).GetFiles
            If fi.CreationTime.Year = criticalyear AndAlso _
                fi.CreationTime.Month = criticalMonth Then
                filenames.Add(fi.Name)
            End If
        Next fi
 
        Return filenames
    End Function
End Class


Beitrag wurde zuletzt am 07.09.17 um 07:29:35 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dateien von bestimmten Tag einlesen1.93900tommy02.09.17 21:23
Re: Dateien von bestimmten Tag einlesen1.206Manfred X03.09.17 06:25
Re: Dateien von bestimmten Tag einlesen1.15800tommy03.09.17 08:07
Re: Dateien von bestimmten Tag einlesen1.173Manfred X03.09.17 11:10
Re: Dateien von bestimmten Tag einlesen1.143Franki04.09.17 03:34
Re: Dateien von bestimmten Tag einlesen1.12700tommy03.09.17 11:56
Häufigkeitsverteilung des Datei-Erstellungsdatums1.149Manfred X03.09.17 12:51
Re: Dateien von bestimmten Tag einlesen1.15700tommy05.09.17 20:06
Dateien mit einem bestimmten Erstelldatum verschieben1.145Manfred X06.09.17 09:12
Re: Dateien von bestimmten Tag einlesen1.101Michele06.09.17 19:56
Häufigkeitsverteilung des Datei-Erstellungsdatums (nach Mona...1.134Manfred X06.09.17 20:34
Re: Dateien von bestimmten Tag einlesen1.093Michele07.09.17 05:56
Dateien verschieben, deren Erstelldatum in einem bestimmten ...1.132Manfred X07.09.17 07:12
Re: Dateien von bestimmten Tag einlesen1.092Michele08.09.17 20:41
Re: Dateien von bestimmten Tag einlesen1.089Michele09.09.17 09:15
Re: Dateien von bestimmten Tag einlesen1.096Manfred X09.09.17 11:10

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel