Windows 7 und filegetsize()

  • Ich verusche zur Zeit die Dateigröße einer per FTP eingehenden Datei zu überwachen. Das Problem unter Windows 7 ist allerdings, dass die Dateigröße nicht regelmässig aktualisiert wird und filegetsize immer den selben alten Wert zurückgibt. Dies ändert sich nur wenn man im explorer im betreffenden Verzeichnis die Ansicht mit F5 aktualisiert. Danach wird die derzeit aktuelle Größe angezeigt und auch filegetsize erhält diesen Wert. Unter Vista und XP war das nicht so. Kann man daran etwas ändern? Man kann diesen Effekt unter Windows auch beobachten wenn man eine größere Datei kopiert. Unter XP/Vista wird die Anzeige im Zielverzeichnis ohne zutun aktualisiert, unter Windows7 erst wenn die Datei komplett kopiert wurde oder manuell die Anzeige des Verzeichnises aktualisiert wurde. Jemand Ideen was man da tun könnte?

  • Hi autobert. Es geht nicht um einen selbst initierten oder allgemein um einen Autoit kontrollierten Download. Es handelt sich in meinem Fall um einen "autoit fremden" FTP Server. Mein Script überwacht das eingehende Verzeichnis auf neue Dateien und soll die derzeitige Dateigröße der noch eingehenden Datei anzeigen, bzw diese Information weiternutzen.

  • Auch du hast es nicht Verstanden.
    Ich habe einen FTP Server. Auf diesen laden beliebige Benutzer Dateien hoch, dies hat nichts mit meinem Script zutun.
    Auf dem Server läuft ebenfalls mein Script. Dieses überwacht das eingehende Verzeichnis auf neue Dateien von besagten Benutzern des FTP Servers.
    Das Script ermittelt in einem regelmässigen Intervall die Größe der Datei die gerade vom Benutzer auf den Server geladen wird.
    Sicher könnte ich auch eine lokale Verbindung zum FTP Server herstellen und dann besagte FTP Funktion benutzen, was aber doch irgendwo ziemlich umständlich wäre, da das Script ja lokal auf dem Server ausgeführt wird und prinzipiell alle Dateiinformationen mittels Windows eigenen Funktionen abrufbar wären.

    EDIT:

    Habe nun alternativ mal die winapi Funktionen benutzt, aber hier ergibt sich das Problem, dass das Filehandle garnicht erst erstellt werden kann solange die Datei aktiv vom FTP Server benutzt wird.

    [autoit]


    #include <WinAPI.au3>

    [/autoit][autoit][/autoit][autoit]

    $file = _WinAPI_CreateFile(@ScriptDir & "\test.datei", 2,2) ; liefert 0 sofern die Datei noch beschrieben wird, auch "...,2,2,2,8" oder "...,2,2,4,8" als Parameter helfen nicht.
    $size = _WinAPI_GetFileSizeEx($file)
    MsgBox(0,"",$size)

    [/autoit][autoit][/autoit][autoit]

    _WinAPI_CloseHandle($file)

    [/autoit]

    Einmal editiert, zuletzt von misterspeed (6. Februar 2011 um 16:06)