FileSize() bei großen Dateien.
Übersicht

![]() |
StarwarBetreff: FileSize() bei großen Dateien. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guten Abend,
Kennt jemdand eine Funktion/Userlib, die in der Lage ist die Größe großer Dateien zu bestimmen? Bei B+ ist ja nach 2GB schluss ![]() (SeekFile unterstützt große Dateien, oder irre ich mich?) MFG -EDIT- Hier ist die Lösung: Code: [AUSKLAPPEN] ;.lib "Kernel32.dll"
;api_GetFileSize%(hfile,Bank*) : "GetFileSizeEx" Function getLargeFileSize$(file$) Open = CreateBank(8) hFile = api_OpenFile(file$, Open, 0) If hFile <> 0 Then Size=CreateBank(256) Fsize% = api_GetFileSize(hFile,Size) api_CloseHandle(hFile) If FSize < 1 Then Return "-1" bytes$=largeint$(Size) FreeBank Open : FreeBank Size Return bytes$ Else Return "-1" EndIf End Function Function largeint$(bank) F1%=PeekShort(bank,0) F2%=PeekShort(bank,2) F3%=PeekShort(bank,4) F4%=PeekShort(bank,6) Fs1$=String_Multiply$(Str(F1%),"1") Fs2$=String_Multiply$(Str(F2%),"65536") Fs3$=String_Multiply$(Str(F3%),"4294967296") Fs4$=String_Multiply$(Str(F4%),"281474976700000") teil1$=String_Add$(Fs1$,Fs2$) teil2$=String_Add$(Fs3$,Fs4$) bytes$=String_Add$(teil1$,teil2$) Return bytes$ End Function Das ganze liefert die Dateigröße in Bytes. ACHTUNG -Es werden die Stringrechner-Funnktionen von Noobody benötigt: https://www.blitzforum.de/foru...hp?t=30728 -.decls nicht vergessen! -Immer den kompletten Dateipfad angeben (Currentdir$()!) MFG |
||
- Zuletzt bearbeitet von Starwar am Sa, Feb 21, 2009 22:36, insgesamt einmal bearbeitet
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da müsstest du die Datei über die WinAPI laden und mit GetFileSizeEx die Dateigröße ermitteln. Damit wird die Größe zwar als 64-Bit Wert zurück gegeben, aber rechnen kannst du damit in BB natürlich nicht direkt. | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group