Datei-Anzeige

  • hab mal noch was in meiner Script Sammlung gefunden. hab aber heute wenig zeit das mal zu prüfen.

    Gruß gmmg

  • Wieso?

    AutoIt
    Local $hSearch = FileFindFirstFile($sSourceFolder & "*.*") -> Local $hSearch = FileFindFirstFile($sSourceFolder & "*.pdf")

    Edit:

    Ich würde, da du 3 Dateierweiterungen brauchst, über 3 FileFindFirstFile ein Array mit den Dateinamen+komplettenPfad füllen, sortieren und daraus dann das Treeview erstellen.

    Dann hättest du das entsprechend abgedeckelt auch für .doc (das schließt auch docx etc. ein!) und für .xls (das schleißt auch xlsx und xlsm etc. ein).

    Wenn du die Dateiendung nicht mit im Treeview hinterlegst, der Dateiname im jeweiligen Ordner aber unique ist, kannst du diese mit FileFindFirstFile ($path & "DATEINAME.*") suchen und öffnen.

    3 Mal editiert, zuletzt von Moombas (25. August 2023 um 15:47)

  • Das Backslash wird automatisch hinzugefügt (If StringRight($sSourceFolder, 1) <> "\" Then $sSourceFolder &= "\"), wenn es nicht mit übergeben wurde. Startpfad ist @ScriptDir, befindet sich darin eine PDF-Datei, dann funktioniert es, ist da keine PDF-Datei drin wird der Ordner auch nicht rekursiv durchlaufen.

  • Das Backslash wird automatisch hinzugefügt (If StringRight($sSourceFolder, 1) <> "\" Then $sSourceFolder &= "\"), wenn es nicht mit übergeben wurde.

    OT : dafür bietet sich auch die Funktion _WinAPI_PathAddBackslash an

    Fügt einen Backslash am Ende eines Strings hinzu, um die korrekte Syntax für einen Pfad zu erstellen

    Parameter

    $sFilePathDer Pfad, an den der Backslash angehängt wird.
    Wenn dieser Pfad bereits einen nachgestellten Backslash aufweist, wird kein Backslash hinzugefügt.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Zur Prüfung kannst du ja auch mal im Consolewrite immer die ganzen Pfade ausgeben lassen. Also z.B.: Consolewrite($sSourceFolder & "*.pdf" & @CRLF)

    Edit: Was natürlich sein kann (da habe ich aktuell nicht drüber nachgedacht), das er bei Nutzung von z.B. *.pdf keine Ordner findet und du somit auch keine Dateien in Unterverzeichnissen.

    Du müsstest das also in der While-Schleife abfragen, dann kannst du es aber direkt für alle Erweiterungen machen.

    Hier mal ein Beispiel dazu:

    12 Mal editiert, zuletzt von Moombas (28. August 2023 um 10:38)

  • Naja hier wäre etwas das funktionieren würde (incl. Ausblenden der Dateiendung!):

    3 Mal editiert, zuletzt von Moombas (28. August 2023 um 15:11)

  • Danke! Top! Funktioniert. Leider kann man wohl Office-Dateien nicht mehr im WebBrowser-Control anzeigen. Das Problem lässt sich aber nicht lösen, da man an die IE-Einstellungen nicht mehr rankommt. Der IE existiert ja nicht mehr.

    BTW:

    Auf meinem Desktop-PC deaktivieren sich immer die Line-Numbers. Kann man die irgendwie dauerhaft aktivieren? Auf meinem Notebook sind sie immer aktiv.

  • Ok, schon gelöst, aber ich habe meine Version auch gerade erst fertig. Also hier noch eine Alternative:

  • Danke! Sehr gut! Da sind auch Datei-Icons drin. Aber wo baue ich da jetzt meine Schaltflächen ein (siehe Code aus dem anderen Script)?

  • Problem gelöst. Ich habe einfach Opt('GUIOnEventMode', 1) und GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseMainGui') entfernt. Jetzt kann ich mit GUIGetMsg arbeiten.

    Ich danke allen Helfern!

  • mumpel 28. August 2023 um 20:28

    Hat das Label [ gelöst ] hinzugefügt.
  • Du wolltest ja auch, dass die Dateiendungen im Treeview nicht mit angezeigt werden. In dem Fall muss man den Pfad woanders speichern.

    Da drängt sich der "neue" Map-Datentyp geradezu auf (man muss nicht durch ein Array iterieren, um den Pfad anhand des Handle zu finden).

    Ich habe so eine Version mal erstellt:

  • Ich muss doch nochmal drauf zurückkommen. Es sollen die Ordner "icon", "settings" und "toolbar" ausgenommen werden, sollen also nicht im Treeview stehen. Ich habe es schon mit _GUICtrlTreeView_DeleteChildren($idTreeView, "icon") versucht, aber das ist wohl nicht der korrekte Pfad. Kann mir bitte nochmal jemand auf die Sprünge helfen? Man müsste ja auch zur Laufzeit entfernen und hinzufügen können? Danke!

  • Man müsste ja auch zur Laufzeit entfernen und hinzufügen können?

    Besser, man liest sie erst gar nicht ein:

  • Danke! Es liegt an _WinAPI_EnumFiles($sPath, 2, $sExcludeDirs, True). Wenn ich jetzt richtig verstehe, kann ich mit "False" auch sagen, dass nur die angegebenen Ordner eingelesen werden sollen!?