Prüfen, ob eine Datei geöffnet ist

  • Hallo zusammen,

    ich habe jetzt mal weiter probiert und mir ist folgendes aufgefallen. Unten steht mein Code, den ich jetzt auf das wesentliche reduziert habe.


    Bei $File_Check = _WinAPI_FileInUse($INI_READ_SECTION_1 & "\*.xlsx") bekomme ich als Rückgabewert eine 0, egal ob eine Liste geöffnet ist oder nicht.

    Schreibe ich allerdings den kompletten Pfad mit Endung hin: $File_Check = _WinAPI_FileInUse("C:\Users\Mikki\Documents\test.xlsx") funktioniert es wie gewollt.

    Meine Frage ist nun: Ist _WinAPI_FileInUse die richtige Wahl? Denn es wäre schön, wenn das Script mit den variablen Dateien umgehen könnte.

    LG Mikki

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

  • [1.Quelle]

    Quellverzeichnis=C:\Users\Mikki\Documents

    [2.Ziel]

    Zielverzeichnis=C:\Users\Mikki\Desktop

    Wenn _WinAPI_FileInUse keine Wildcards unterstützt, wie soll dann eine Dateiprüfung speziell für xlsx-Dateien funktionieren?

    Gibt es nicht noch eine andere Möglichkeit?

    LG Mikki

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

  • Hallo Mikki !

    Hier mal ein kleines Testprogramm (mit Unterverzeichnis). Statt der .txt musst Du später deine xls.-Dateien verwenden :)

    Quellcode (identisch zur zip)

    Statt $sSourceDir und $sDestinationDir musst Du in deinem Programm später natürlich deine Pfade eintragen.

    Gruß Musashi

    Dateien

    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."

    Einmal editiert, zuletzt von Musashi (7. Oktober 2017 um 20:23) aus folgendem Grund: Erweiterung

  • Genau das suche ich. Danke Musashi

    Ich hätte dazu noch eine Frage:

    For $i = 1 To $aFileMoveList[0]

    Warum steht dort [0]?

    Oscar : Ja genau. Und zwar wollte ich das so handhaben, dass man in dieser "Auftragsdatei" nur die Pfade angibt. Den Rest sollte er sich selbst suchen.

    LG Mikki

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

  • Hallo Mikki !

    Genau das suche ich. Danke Musashi


    Ich hätte dazu noch eine Frage:


    For $i = 1 To $aFileMoveList[0]


    Warum steht dort [0]?

    Ich helfe Dir wirklich gerne weiter, aber Du solltest, auch in eigenem Interesse, ggf. vorher kurz in die Hilfe schauen :P

    Immerhin bist Du ja gerade vom Status 'Anfänger' zu 'Schüler' aufgestiegen;).

    Tweaky freut sich sicher auch, wenn die Hilfe häufiger konsultiert würde.

    Zur Frage :

    _FileListToArray () gibt ein 1-D Array (also eine Liste) zurück). Im Element [0] des Arrays steht die Anzahl der Einträge.

    Die Elemente 1..n enthalten die Einträge selbst.

    Gruß Musashi

    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."

  • Hallo Musashi

    Ouh ja da steht es, sehe es gerade... Gut okay. Erst schauen, dann fragen.

    Danke für eure Hilfe :)

    Gruß Mikki

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.