Kontrolle: Wann ist die Datei vollständig?

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von fatfrank.

    Kontrolle: Wann ist die Datei vollständig?

    Ich erzeuge eine Datei in einem neuen Verzeichnis. Dieser Vorgang dauert einige Zeit.
    Ich will nun zyklisch mit einem Timer prüfen ob die Datei vollständig ist.
    Gibt es da einen Befehl?
    Irgendwas wie fileIsWriting("C:\Datei.mpg") oder so??

    Danke und Gruß ff
    Hi, fatfrank.

    Ich denke, du hast dein Problem hier nicht ausreichend vollständig geschildert. Um zu überprüfen, ob eine Datei vollständig ist, musst du ja eine Prüfsumme haben. Wenn du z.B. eine bestimmte Dateigröße erreichen wolltest, könntest du z.B. in die Timerprozedur eine Funktion schreiben, die die Dateigröße der Datei prüft. Wenn du aber z.B. eine gewisse Anzahl an Zeichen hereinschreiben willst, müsstest du ganz anders vorgehen. Verstehst du, was ich meine? Du musst deine Probleme genauer beschreiben, denn niemand von uns kann Gedanken lesen.

    mfG,

    Malcolm

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

    Hi Malcolm,
    das hier niemand Gedanken lesen kann ist wirklich schade.

    Nein, ich weiß vorher nicht wie groß die Datei wird.

    Ich codiere und encodiere Videodateien in verschiedene Formate, teilweise rendere ich zusätzliche Informationen mit in das Bild.
    Wenn ich also einen encodier Vorgang starte, wird im entsprechenden Pfad eine Datei z.B. FilmX.m2p erzeugt. Je nach Fortschritt wächt diese Datei an bis sie fetig ist. Da ich von meinem System keine Status Rückmeldung bekomme will ich zyklisch abfragen ob in die Datei FilmX.m2p noch geschrieben wird oder nicht.

    Gruß, ff
    Ich würde die Datei öffnen und wenn es einen Fehler gibt, dann wird sie noch geschrieben (Zugriffsfehler).

    Etwa so:

    private function fileisopen(byval strfilename as string) as boolean
    dim ff as integer
    fileisopen=false
    ff=freefile
    on local error goto error_fileisopen
    open strfilename for input as #ff
    close #ff
    exit function
    error_fileisopen:
    fileisopen=true
    end function
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hallo Marcus,

    so in etwa habe ich mir das Vorgestellt. Wenn ich den Code ausführe passiert folgendes:

    Die Funktion liefert whar solange noch kein Dateiname erzeugt ist, und falsch sowie der Name existiert aber die Datei noch nicht Vollständig erzeugt wurde.

    => So geht es also leider nicht

    Habe folgendes im Netz gefunden:

    Function FileFree (sDateiname As String) as Boolean
    Dim ff as Integer
    On Error Resume Next
    ff = FreeFile()
    Open sDateiname Access Read Lock Read Write as #ff
    If Err Then
    FileFree = False
    Else
    FileFree = True
    End If
    Close #ff
    End Function

    => das funktioniert.

    Gruß, ff

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