PDA

Vollständige Version anzeigen : dateigröße anhand variable ermitteln ?


dmsman
05.07.2001, 15:44
Hi,
ist es möglich anhand des pfades einer datei den ich in einer variablen gespeichert habe die dateigröße rauszubekommen ?
irgendeine api-funktion?
ich kenn eine für version,datum aber nicht für die größe ??
danke

gloria
05.07.2001, 15:48
hi,
hier ein Beispiel:

On Error GoTo ERR_LstDateien_AfterUpdate
Dim strDBxy, strDBzz As String
Dim x1 As Integer
Dim FileINByte As Long

ChDir "\\Nt02\DATEN\EDV\PSI Auswertungen\"
strDBxy = "\\Nt02\DATEN\EDV\PSI Auswertungen\" & Trim(Forms![hf_Menü]![LstDateien]) 'Wert aus Optionsgruppe holen
x1 = Len(strDBxy)
strDBzz = Right(strDBxy, x1 - 34)
FileINByte = FileLen(strDBxy) / 1000
Forms![hf_Menü]!MsgTxT = "MDB: " & strDBzz & " - " & Format(FileINByte, "##,##0") & " kB"
Forms![hf_Menü].Repaint

Exit_LstDateien_AfterUpdate:
Exit Sub

ERR_LstDateien_AfterUpdate:
MsgBox Err.Description
Resume Exit_LstDateien_AfterUpdate

Die Anzeige erfolgt in kB, drum die Division durch 1000.

ciao glori

dmsman
05.07.2001, 19:11
Hallo Gloria,

danke erstmal für deinen code! wo setze ich jetzt meine variable namens SafeFileName ein ? wär nett wenn du mir dies noch sagen würdest !
danke
cu

Scorefun
05.07.2001, 20:10
wenn Du den kompletten Dateinamen incl. Dateipfad bereits in Deiner Variablen hast:

msgbox filelen(DeineVariable)

oder woimmer Du das auch brauchst

dmsman
06.07.2001, 07:35
Hallo Scorefun :)

also dein code geht auch aber wie kann ich den betrag in KB angeben jetzt gibt er es in Byte aus ! teil ich den betrag nochmal durch 1024 oder so ?
danke

dmsman
06.07.2001, 08:37
Ok problem mit KB MB und bla gelößt aber wie schneide ich die Kommazahlen jetzt auf ab ich will sie bspw. auf 2 stellen nach dem komma kürzen ?
gibts da wieder eine funktion ?
danke

Scorefun
06.07.2001, 09:19
am besten machst Du das mit der Format-Funktion:

format(DeineVariable, 0.00)

dmsman
06.07.2001, 09:45
Ralf,
ich bekomm da immer die fehlermeldung typen unverträglich:

dim rounded, ergmb as double
rounded = Format(ergmb, 0#)

die 0# macht er automatisch obwohl ich
0.00 eingegeben habe !
sind die typen falsch deklariert ?
danke

dmsman
06.07.2001, 09:48
Hi Ralf,
jetzt bekomm ich aber bei dem format-befehl eine fehlermeldung typen unverträglich ???
folgendes hab ich jetzt:

dim rounded, ergmb as double

rounded = format ( ergmb, 0#)

obwohl ich 0.00 eingebe er macht 0# draus !
naja vielleicht weist du auch hier die lößung ?
cu

gloria
06.07.2001, 09:54
hi,
bin wieder da. Was bei dir SafeFileName ist, heißt bei mir strDBxy. Ansonsten macht:

FileINByte = FileLen(strDBxy) / 1000
Forms![DeinFormular]!Feld = "MDB: " & strDBzz & " - " & Format(FileINByte, "##,##0") & " kB"
Forms![hf_Menü].Repaint

alles was du brauchst (Format, Anzeige usw)

ciao glori

dmsman
06.07.2001, 10:02
Hi Gloria,
ok jetzt füg ich diesen code ein:

FileINByte = FileLen(SafeFileName) / 1000
Forms![frmDateien]!Dateigroesse = "MDB: " & strDBzz & " - " & Format(FileINByte, "##,##0") & " kB"
Forms![hf_Menü].Repaint

aber soll ich den code hinter einen button legen oder in eine msgbox ??
danke

gloria
06.07.2001, 12:14
hi,
ist dir überlassen, kannst beides machen.
Variablen deklarieren nicht vergessen.

Dim strDBxy, strDBzz As String
Dim x1 As Integer
Dim FileINByte As Long

FileINByte = FileLen(SafeFileName) / 1000
Forms![frmDateien]!Dateigroesse = "MDB: " & strDBzz & " - " & Format(FileINByte, "##,##0") & " kB"
Forms![hf_Menü].Repaint

Füg -zum Test- mal einen Button, hinter den du den Code legst ein. Die Anzeige kannst du über ein FormuarFeld (wie hier Feld MsgTxT) oder über eine MsgBox machen.

ciao glori