Anzahl Dateien im bestimmten Zeitraum suchen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Anzahl Dateien im bestimmten Zeitraum suchen

    Hallo ihr lieben,

    ich würde gerne die Anzahl der Dateien in eine Var. schreiben die sich in einem bestimmten Zeitraum befinden.
    Die Anzahl der sich im Ordner liegenden Dateien kann ich ausgeben aber leider finde ich keine Idee wie ich die in einem bestimmten Zeitraum finde.

    Ich hoffe ihr versteht was ich meine. Hier mein aktueller Code:

    Dim di = New IO.DirectoryInfo("Pfad")
    Dim fis() = di.GetFiles("*.txt", IO.SearchOption.TopDirectoryOnly)
    Dim dis() = di.GetDirectories()
    MessageBox.Show("Textdateien: " & fis.Length & Environment.NewLine & "Unterverzeichnisse: " & dis.Length)

    Vielen Dank schon mal für eure Antworten :)

    Gruß
    Peet
    @peet Hole Dir zu jeder der Dateien eine FileInfo-Instanz: learn.microsoft.com/de-de/dotn….io.fileinfo?view=net-8.0
    Diese verfügt über folgende Properties, die Du suchst: .CreationTime, .LastAccessTime, .LastWriteTime.
    Dann machst Du einen einfachen Range-Test:

    VB.NET-Quellcode

    1. If myStartTime <= fi.CreationTime AndAlso myEndTime <= fi.CreationTime Then
    2. MessageBox("Treffer")
    3. End If
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @peet Kannst du deinen Code bitte in [vbnet][/vbnet]-Blöcke packen? Dafür sind die da. Ich hätte deinen Code jetzt fast überlesen.

    Was du noch machen kannst, ist Mittels LINQ alles in eine Liste zu schreiben.

    Das hier würde alle Dateien holen, die in den letzten 14 Tagen geschrieben wurden.

    C#-Quellcode

    1. DateTime beginTime = DateTime.Today.AddDays(-14);
    2. var files = new DirectoryInfo("/home/simon").EnumerateFiles().Where(file => file.CreationTime >= beginTime && file.CreationTime <= DateTime.Now);
    3. foreach (var f in files) {
    4. Console.WriteLine($"File '{f.FullName}' => {f.CreationTime}");
    5. }


    Output:

    Quellcode

    1. File '/home/simon/test_rsa' => 01/16/2024 19:38:40
    2. File '/home/simon/hello' => 01/12/2024 15:19:37
    3. File '/home/simon/.zcompdump-ODIN-5.9' => 01/05/2024 09:24:05
    4. File '/home/simon/.zcompdump-ODIN-5.9.zwc' => 01/05/2024 09:24:05
    5. File '/home/simon/hello.c' => 01/12/2024 15:19:35
    6. File '/home/simon/.zsh_history' => 01/18/2024 11:13:49
    7. File '/home/simon/.lesshst' => 01/14/2024 22:34:17


    EDIT: Lass' dich nicht vom Datum irritieren. Scheinbar hab ich es mal wieder geschafft, ein amerikanisches Format einzurichten
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.