Alle Verzeichnisse nach Datum gefiltert durchgehen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von kurzda.

    Alle Verzeichnisse nach Datum gefiltert durchgehen

    Hallo,

    ich bin auf der Suche nach einer Lösung und komme nicht so recht weiter mit den Ergebnisse von Tante Google.
    Das hier stackoverflow.com/questions/77…-files-by-date-in-asp-net gibt schon fast alles wieder, was ich brauche.

    Also
    mein Programm geht jedes Verzeichnis in einem Root-Verzeichnis durch
    und soll nur die bearbeiten, die sich in einem beliebigen Zeitraum
    befinden.

    Hiermit grenze ich den Zeitraum ein, je nachdem was im Programmsetup vorher für ein Abgleichszeitraum ausgewählt wurde.

    VB.NET-Quellcode

    1. Select Case CInt(fkt_SQL_Abfragen("tab_Einstellungen", "Flag", False, "Abgleich_Bilder", "Wert"))
    2. Case 0 ' Komplettabgleich
    3. dt_Von = "01.01.2000"
    4. dt_Bis = "31.12.2100"
    5. Case 1 ' Jahresabgleich
    6. dt_Von = DateSerial(Year(Now()), 1, 1)
    7. dt_Bis = DateSerial(Year(Now()), 12, 31)
    8. Case 2 ' Monatsabgleich
    9. dt_Von = DateSerial(Year(Now()), Month(Now()), 1)
    10. dt_Bis = DateAdd(DateInterval.Day, -1, DateSerial(Year(Now()), Month(Now()) + 1, 1))
    11. Case 3 ' Tagesabgleich
    12. dt_Von = Today
    13. dt_Bis = Today
    14. End Select


    Eigentlich scheint der Editor das noch nicht anzuzählen

    VB.NET-Quellcode

    1. Dim Verzeichnisse As DirectoryInfo() = New DirectoryInfo(fkt_SQL_Abfragen("tab_Einstellungen", "Flag", False, "VrzCheck_Pfad", "Wert")).GetDirectories().Where(Function(DirectoryInfo) Directory.GetLastWriteTime >= dt_Von AndAlso Directory.GetLastWriteTime <= dt_Bis))


    Aber hierbei fängt er an zu mimosen

    VB.NET-Quellcode

    1. For Each Verzeichnis As DirectoryInfo In Verzeichnisse
    2. Next


    Er kennt "Verzeichnisse" nicht. Ich habe es auch schon mit einem Prefix versucht - ergebnisgleich.

    Ist der Aufruf überhaupt so korrekt. Ist ein Schuß ins Blaue und meine VB.Net sind begrenzt.

    ### ergänzend ###

    Wenn ich die Dimensionierung und die Zuweisung trenne, dann erhalte ich für "New Directory ..." die Fehlermeldung
    Fehler bei der Überladungsauflösung, da keine zugreifbare "Where" mit diesen Argumenten aufgerufen werden kann.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kurzda“ ()

    Mach mal anstatt

    VB.NET-Quellcode

    1. Dim Verzeichnisse As DirectoryInfo() = New DirectoryInfo(fkt_SQL_Abfragen("tab_Einstellungen", "Flag", False, "VrzCheck_Pfad", "Wert")).GetDirectories().Where(Function(DirectoryInfo) Directory.GetLastWriteTime >= dt_Von AndAlso Directory.GetLastWriteTime <= dt_Bis))


    VB.NET-Quellcode

    1. Dim Verzeichnisse As DirectoryInfo() = New DirectoryInfo(fkt_SQL_Abfragen("tab_Einstellungen", "Flag", False, "VrzCheck_Pfad", "Wert")).GetDirectories().Where(Function(d) d.GetLastWriteTime >= dt_Von AndAlso d.GetLastWriteTime <= dt_Bis)).ToArray()


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Hallo,
    danke für die Hilfe. Hat im ersten Step nicht 100%tig geholfen, aber ich habe nicht aufgegeben und bin zu folgendem Ergebnis gekommen.

    VB.NET-Quellcode

    1. Dim obj_Verzeichnisse As DirectoryInfo() = New DirectoryInfo(fkt_SQL_Abfragen("tab_Einstellungen", "Flag", False, "VrzCheck_Pfad", "Wert")).GetDirectories.Where(Function(d) d.LastWriteTime >= dt_Von AndAlso d.LastWriteTime <= dt_Bis).ToArray


    Sieht fast aus wie von fichz, aber bei GetDirectories müssen die Klammern weg und als Objekt muss hier "LastWriteTime".

    Trotzdem super vielen Dank an Euch beide!!