Konsolenanwendung -> Dateien nach Namen und Inhalt durchsuchen und ausgeben

  • VB.NET

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von ThePlexian.

    Polar schrieb:

    wenn ich auf die gesuchte Datei nicht zugreifen
    darf, weil Du keine Rechte dazu hast.
    1. Um welche Datei (mit Pfad) handelt es sich?
    2. Hast Du Admin-Rechte?
    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!
    Dann ist wohl ein Fehler in deinem Code - trotz TryCatch.
    Hast du post#18 übersehen - da issn Link drin mit einer Datei-Sammel-Funktion in verschiedenen Varianten, und die unterstützt auch Suchpattern und pipapo.

    Wenn du allerdings die Suche abbrechen willst, sobald eine bestimmte Datei gefunden wurde, müsste man die wieder abwandeln.

    Polar schrieb:

    C:\Users\xyz\Desktop
    Bist Du User xyz?
    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!
    @Polar Hast Du vergessen, nach dem Pfad ein "\" anzuhängen? Dies funktioniert:

    VB.NET-Quellcode

    1. Dim path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
    2. path &= "\text.txt"
    3. IO.File.WriteAllText(path, "abc")
    4. Dim txt = IO.File.ReadAllText(path)
    5. MessageBox.Show(txt)
    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!
    Von den ganzen netten IO-Sachen mal abgesehen, hast du in dem Code noch nen eventuell gravierenden Fehler auf welchen noch keiner Aufmerksam gemacht hat. Wenn irgendwo z.B. eine ISO mit 3GB liegt, dann verabschiedet sich dein Programm so oder so. Weshalb? Weil du den gesamten Inhalt der Datei in Form von einem String in den Speicher lädst. Du wirst jedoch keine 3GB Speicher zur Verfügung haben -> OutOfMemoryException und gute Nacht. Es würde sich z.B. anbieten ab einer Dateigröße immer Teile der Datei in den Speicher zu laden, dann schauen ob der Text vorkommt und so weiter. Wird jedoch gar nicht mal so leicht werden, da sich der gesuchte String auch genau über so eine Bruchstelle drüber legen kann. Müsste man schauen. Nur als Hinweis auf eine potentielle Fehlerquelle.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Du hast nicht Unrecht @thefiloe, aber man gibt ja auch das Pattern für die GetFiles Methode an. Und wenn jmd Inhalt durchsucht, werden wahrscheinlich nur Dateien genommen, die als plaintext gespeichert werden. Betonung allerdings auf "wahrscheinlich".
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Du kannst dich nicht darauf verlassen, dass der Benutzer keine rießigen Archive, Systemabbilder etc. im Filter inkludiert. Gerade auch daher, da der * Filter am einfachsten und schnellsten geht. Zumindest solche Dateien abfangen ist ein muss.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.