Dateigröße ermitteln VB6

  • #1
S

Spazz

Bekanntes Mitglied
Themenersteller
Dabei seit
04.07.2002
Beiträge
278
Reaktionspunkte
0
Ort
WEN
Hi,

wollte mittels FileLen die Größe einer Datei ermitteln.

die datei ist 3,2 GB groß! Zurückgegebener Wert = -997653468

bei einer kleineren Datei mit nur 1,5 GB funktioniert es!

jemand ne idee warum? und wie kann ich die 3,2 GB in Programm ermitteln?

liegt es am Variablentyp long? mit welchem typ könnte ich den wert darstellen?

Mercì im Voraus!!!

MfG
 
  • #2
also mit double gehts auch net!!!
 
  • #3
Hi

Geh auf Projekt >> Verweise und such in der Liste die Komponente Microsoft Scripting Runtime und setze ein Häkchen dran.

Nun kannst du mit folgender Function die Dateigröße ermitteln:
Code:
Public Function FileSize(ByVal sFile As String) As Double
    Dim objFso As FileSystemObject
    Dim objFile As File
  
    Set objFso = New FileSystemObject
    Set objFile = objFso.GetFile(sFile)
    FileSize = objFile.Size
    Set objFile = Nothing
    Set objFso = Nothing
End Function

Mfg Alexander
 
  • #4
Das hatte ich schon mal versucht!

bekomme dann immer die meldung

automatisierungsfehler:
das angegebene Modul kann nicht gefunden werden!

der verweis ist gemacht!

woran liegt das???
 
  • #5
Hi

Laut Google.de ist die Komponente dann defekt.
Hier kannst du die RunTime 6.0 herunterladen: Klick

Mfg Alexander
 
  • #6
hhhmm....der automatisierungsfehler ist weg...aber etz kommt:

Fehler beim Kompilieren:
Erwartet Audruck!

wieso kann ich mit der filelen funktion die 3,2 GB nicht darstellen?
müsste doch mit double gehen oder?
 
  • #7
sorry..der automatisierungsfehler besteht weiterhin!
 
  • #8
habe die scrrun.dll ersetzt...keine wirkung!
 
  • #9
Hi

An welcher Stelle im Code kommt den der Fehler?

wieso kann ich mit der filelen funktion die 3,2 GB nicht darstellen?
müsste doch mit double gehen oder?

Die Function FileLen gibt einen Long-Wert zurück, die die Anzahl der Bytes der Dateigröße enthält.
Eine Long-Variable kann eine maximale Zahl von 2.147.483.648 erfassen.

Wenn du dir nun folgende Tabelle ansiehst wird dir mit Sicherheit was auffallen:

1 Gigabyte = 1.073.741.824 Byte
2 Gigabyte = 2.147.483.648 Byte
3 Gigabyte = 3.221.225.472 Byte

Genau! Die Byte-Zahl bei 3 Gigabyte ist zu groß für eine Long-Variable, deshalb kann die Function FileLen auch keine Dateigrößen mit der größe von 3 Gigabyte erfassen.

Mit der FileSize-Function von der Microsoft Scriping Runtime-Komponente gibt einen Double-Wert zurück, der viel größere Zahlen erfassen kann als der Long-Variablentyp es kann.

P.s.: Es gibt eine Editier-Funktion im Forum ;) ;D

Mfg Alexander
 
  • #10
Public Function FileSize(ByVal sFile As String) As Double
Dim objFso As FileSystemObject
Dim objFile As File

Set objFso = New FileSystemObject <---- hier tritt der fehler auf
Set objFile = objFso.GetFile(sFile)
FileSize = objFile.Size
Set objFile = Nothing
Set objFso = Nothing
End Function


hhmm...hast noch ne idee alexander16???
ich net mehr... hab mir noch das sp 6 runtergeladen. nach installation hat sich aber der rechner immer wieder aufgehängt! versuchs morgen nochmal... danke
 
  • #11
Habe das ganze auf einem anderen Rechner getestet!

der einzige Unterschied war...bei mir fehlte die Datei scrrnde.dll im system32 ordner.

habe auf dem pc ein setup gemacht und bei mir installiert! seit dem gehts!!!

vielen dank trotzdem an alle!!! servus
 
Thema:

Dateigröße ermitteln VB6

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben