_WinAPI_GetFileSizeEx Problem

  • Tag allerseits,

    Ich möchte mittels _WinAPI_GetFileSizeEx die Größe einer Datei auslesen.
    Allerdings gibt er mir bei diesem Code immer nur "O" zurück :(

    #include <WinAPI.au3>
    $hFile = @ScriptDir & "/test.exe"
    $size = _WinAPI_GetFileSizeEx($hFile)
    MsgBox(0,"test",$size)

    Kann mir da jemand helfen, bitte keine Alternativen wie FileGetSize :)

    Gruß
    Silverlight

  • $hFile muss ein FileHandle sein und kein Pfad ;). Eine Datei kannst du mit _WinAPI_FileCreate öffnen.

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>

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

    $sFilePath = FileOpenDialog("Datei auswählen", "", "All (*.*)")
    If @error Then Exit

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

    $hFile = _WinAPI_CreateFile($sFilePath, 2, 2)
    $iFileSize = _WinAPI_GetFileSizeEx($hFile)
    _WinAPI_CloseHandle($hFile)

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

    MsgBox(64, "Info", "Dateigröße (Bytes): " & $iFileSize)

    [/autoit]
  • Ausserdem ist der Pfad falsch angegeben:

    [autoit]


    $hFile = @ScriptDir & "/test.exe" ; falsch
    $hFile = @ScriptDir & "\test.exe" ; richtig

    [/autoit]


    Windows ist an dieser Stelle mal kulant und erlaubt beides.

  • Zitat

    Windows ist an dieser Stelle mal kulant und erlaubt beides.


    Naja kulant trifft es nicht ganz, wenn es alle anderen anders machen :)
    Soweit ich weiß hat nur WinDOS den Backslash,
    vermutlich funktioniert der Slash weil irgend eine uralt Funktiomn geklaut wurde und man vergessen hat das zu verschleiern :)

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o