Neueste Datei finden

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von x-ray.

    Neueste Datei finden

    Ausgelagert aus Prüfen ob in Textdatei bestimmtes Wort steht. ~Thunderbolt

    Hallöchen,

    vielen Dank für die Hilfreichen Antworten, genau das habe ich gesucht.
    Jetzt möchte ich gern, dass immer die neueste Datei im Ordner ausgelesen wird.
    Ich hab was gefunden aber funktioniert leider nicht.

    Quellcode

    1. Dim pfad As String = My.Computer.FileSystem.SpecialDirectories.Desktop '"C:\DaSi"
    2. Dim thaFileLastChanged As String = (New DirectoryInfo(pfad).GetFiles().OrderByDescending(Function(d)
    3. Return d.LastAccessTime
    4. End Function))(0).ToString
    5. If thaFileLastChanged.Contains("erfolgreich") Then
    6. MessageBox.Show("gefunden")
    7. Else
    8. MessageBox.Show("Fail")
    9. End If

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

    Also wäre vllt schön nen neuen Post zu machen als so nen alten aufzufrischen.
    Welchen Sinn hat denn deiner Meinung nach

    VB.NET-Quellcode

    1. If thaFileLastChanged.Contains("erfolgreich") Then
    2. MessageBox.Show("gefunden")
    3. Else
    4. MessageBox.Show("Fail")
    5. End If


    PS: Bitte anstelle von dem My.Computer Gedönse

    VB.NET-Quellcode

    1. Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

    benutzen. My ist ne Kompatibilitätssache... Sollte man nicht mehr benutzen.

    VB.NET-Quellcode

    1. Dim thaFileLastChanged As String = (New DirectoryInfo(pfad).GetFiles().OrderByDescending(Function(d)
    2. Return d.LastAccessTime
    3. End Function))(0).ToString

    ermittelt korrekt die zuletzt geänderte Datei. Wo ist denn das Problem?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

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

    x-ray schrieb:

    funktioniert leider nicht.
    Doch, es funktioniert, es wird die richtige Datei gefunden.
    Allerdings ist der Name ohne Pfad.
    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!
    Hey, Danke für die Antworten.
    Einige sagen man soll kein neuen Thread aufmachen und andere sagen es so, man kann es kein Recht machen :D

    Problem ist, es werden Textdateien aus einer Datensicherung im Ordner "C:\DaSi" angelegt und er soll einfach nur
    in der letzten Textdatei schauen ob das Wort "erfolgreich" vorkommt. Leider funktioniert das nicht so richtig
    Also was du da programmiert hast ermittelt aber nur ob im DateiNAMEN "Erfolgreich" vor kommt. Nicht ob in der Datei "Erfolgreich" vor kommt.
    Nun möchtest du nicht den Desktop durchsuchen sondern einen ganz anderen Ordner?
    Macht es da sinn den zu ermitteln oder steht der immer FIX fest?
    Du ermittelst ja den Ordnerpfad des Desktops.

    Wenn du den Inhalt einer Datei die auf dem Desktop liegt und zuletzt geändert wurde auf den Inhalt prüfen willst, dann eher so:

    VB.NET-Quellcode

    1. 'Ermitteln des Desktoppfades
    2. Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
    3. 'Ermitteln der zuletzt gäenderten Datei (gesamter Pfad)
    4. Dim sFileLastChanged As String = (New DirectoryInfo(pfad).GetFiles().OrderByDescending(Function(d)
    5. Return d.LastAccessTime
    6. End Function))(0).FullName
    7. 'Inhalt der gefundenen Datei nach "erfolgreich" durchsuchen
    8. If File.ReadAllText(sFileLastChanged).Contains("erfolgreich") Then
    9. MessageBox.Show("gefunden")
    10. Else
    11. MessageBox.Show("Fail")
    12. End If


    EDIT: Paar Kommentare eingefügt.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    nun geht es so

    Dim spfad As String = "C:\Dasi"
    Dim sFileLastChanged As String = (New DirectoryInfo(sPfad).GetFiles().OrderByDescending(Function(d)
    Return d.LastAccessTime
    End Function))(0).FullName
    If File.ReadAllText(sFileLastChanged).Contains("erfolgreich") Then
    MessageBox.Show("gefunden")
    Else
    MessageBox.Show("Fail")
    End If


    Danke euch :)
    Also du durchsuchst den Desktop nach Dateien nicht die Ordner des Desktops!
    Schreib doch mal in die Pfad-Variable manuell den richtigen Pfad rein der durchsucht werden soll.
    Oder sollen prinzipiell alle Unterordner des angegebenen Ordners durchsucht werden?

    EDIT:
    Bei dem Befehl "GetFiles" gibt es die Möglichkeit zu sagen was er genau suchen soll.
    Hier müsstet du zB:

    VB.NET-Quellcode

    1. GetFiles("*", SearchOption.AllDirectories)

    draus machen um alle Dateien "*" in allen Ordnern "AllDirectories" zu durchsuchen.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D