Autor | Thema: Eigenschaften Verzeichnis | | Datum:14.06.02 10:05 
(Tilo.Mayer@gmx.de) | |
Hallo
ich habe mir jetzt Profan 7.5 gekauft.
Ich möchte ein Programm schreiben was mir täglich die Größe der Verzeichnisse ausliest und in eine Datenbank oder txt Datei speichert. Hat vielleicht jemand eine Idee wie ich die Eigenschaften ( Größe ) von Verzeichnissen auslesen kann?
Mit @filesize("c:\Test\*.*") funktioniert das nicht.
Falls das eine Anfängerfrage sein sollte dann Entschuldige ich mich schon vorher, bitte aber trotzdem um Hilfe.
MFG
Tilo
|
| | Datum:14.06.02 11:27 
(schmidts@flat2serv.de) | |
Hallo,
fileSize kann auf ein Verzeichnis ja auch nicht funktionieren, weil ein Verzeichnis keine Größe haben kann, nur die enthaltenen Dateien haben eine Größe (also der Inhalt des Verzeichnisses). Du musst daher mit FindFirst / FindNext zunächst alle Dateinamen sammeln, die sich in dem Verzeichnis (inkl. ev. Unterverzeichnissen) befinden. Diese Liste der Dateinamen gehst Du dann durch und addierst die Größe jeder Datei, so erhälst Du am Ende gewünschte Größe.
Mfg.
Sven Schmidts
|
| | Datum:14.06.02 11:47 
(apollo@rw-net.de) | |
Ich würde vorschlagen, die Dateien mittels AddFiles in eine Listbox einzulesen. Damit kannst Du auch gleich die Unterverzeichnisse mit abdecken.
Dann einfach durch die Liste gehen, für jede Datei Grösse ermitteln & aufsummieren.
Sollte auch recht zügig funktionieren.
mfG, René
|
| | | Datum:14.06.02 14:11 
(Tilo.Mayer@gmx.de) | |
Hallo
Danke für die Antworten.
Das mit dem Addfiles habe ich verstanden, nur wie geh ich dann jede einzelne Datei durch und wie summiere ich dann auf. Ich möchte schon das alles im Hintergrund abläuft also ohne Auswahl.
MFG
Tilo
|
| | Datum:14.06.02 14:45 
| |
Hallo,
du wendest einfach @filesize an auf alle gefundenen Files und addierst die Längen der Dateien...
Gruß, Frank
|
| | Datum:14.06.02 14:51 
(joerse@gmx.de) | |
Hallo,
Du mußt sämtliche Einträge in Deiner Listbox abfragen.
Declare ListBox&,Datei$,Index%,Size&
WhileLoop GetCount(Listbox&)
Datei$=GetString$(Listbox&,(&Loop - 1))'Die Zählung fängt bei 0 an
Size&=Size& + FileSize(Datei$)
Wend
Print Size&
So sollte es klappen.
Gruß
Jörg
|
| | Datum:14.06.02 18:19 
(webmaster@rokosoft.de) | |
... und im Hintergrund die Listbox
damit man diese nicht sieht:
CREATE("LISTBOX",%HWND,"",0,0,0,0)
Rolf
|
| | Datum:14.06.02 20:56 
(schmidts@flat2serv.de) | |
... unsichtbar, aber bitte mit cooler Schrift:
hFont% = @Create("Font","Arial",20,12,0,0,0)
SetFont Listbox%,hFont%
;)
Sven
|
| | Datum:15.06.02 13:58 
(Tilo.Mayer@gmx.de) | |
ich glaube ich verzweifele gleich, irgendwie krieg ich das nicht hin. Das klingt alles so einfach,ist auch irgendwie logisch aber es geht bei mir nicht.
Wenn es nicht zuviel Mühe macht könnte könnte vieleicht mal einer den kompletten Quellcode posten das wär echt gut.
Danke dür die Mühe
Tilo
|
| | Datum:15.06.02 14:20 
(joerse@gmx.de) | |
Hallo Tilo,
Mach's doch mal umgekehrt. Poste Deinen Quellcode.
Vielleicht ist es ja nur ein kleiner Haken.
Gruß
Jörg
|
| | Datum:15.06.02 14:34 
(webmaster@rokosoft.de) | |
Hier ein Beispiel, hab nicht viel getestet, es werden bestimmt noch kleinigkeiten zu erledigen sein.
Ist halt das, was hier beschrieben wurde.
'********************** HINWEISE ********************************
' CODE ERZEUGT MIT ROKO'S OBJECT CREATOR V 2.5
' DATUM 15.06.2002 um 14:12 Uhr
' VERWENDETE PROFANVERSION IST 7.0 ODER HÖHER
SETTRUECOLOR 1
DECLARE ENDE%
DECLARE LISTBOX1&
DECLARE TEXT1%
DECLARE TEXT2%
DECLARE BUTTON1%
Declare ListBox&,Datei$,Index%,Size&
Declare Verzeichnis$
WindowStyle $003F
WINDOW 163,114-329,113
WINDOWTITLE "Verzeichnisgröße"
CLS @RGB(212,208,200)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
' Hier kann ggf. Ihr Menü hin
TEXT1% =CREATE("TEXT",%HWND,"Gewähltes Verzeichnis hat eine Größe von",0006,0059,0202,0013)
TEXT2% =CREATE("TEXT",%HWND,"Byte",0229,0059,0076,0014)
BUTTON1% =CREATE("BUTTON",%HWND,"Verzeichnis wählen und berechnen",0007,0020,0239,0030)
WHILENOT ENDE%
WAITINPUT
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF GETFOCUS(BUTTON1%) 'BUTTON
destroywindow(listbox1&)
LISTBOX1& =CREATE("LISTBOX",%HWND,"LISTBOX1",0000,0000,0000,0000)
Clear Datei$,Verzeichnis$,Size&
Verzeichnis$=@ChooseDir$("Zu berechnendes Verzeichnis")
If neq$(Verzeichnis$,"")
clearlist
chdir Verzeichnis$
AddFiles *"*.*"
movelisttolist(listbox1&)
WhileLoop GetCount(Listbox1&)
Datei$=GetString$(Listbox1&,(&Loop - 1))'Die Zählung fängt bei 0 an
Size&=Size& + FileSize(Datei$)
settext Text2%,add$(str$(size&)," Byte")
Wend
Endif
ENDIF
WEND
Hoffentlich ist es "fast ;)" richtig
Rolf
|
| | Datum:15.06.02 17:33 
(Tilo.Mayer@gmx.de) | |
Super danke sehr.
Ich hatte doch schon einige Denkfehler.
Ihr habt ja recht beim nächsten mal Poste ich meine Quelltext
Tilo
|
| | Datum: 15.06.02 17:40 
(webmaster@rokosoft.de) | |
Na dann :)
Hab aber im Code vergessen:
FileMode 0
sonst gibt es öfters bei geöffneten Dateien Fehlermeldungen
Setz es an eine gewünschte Stelle - denk daran:
Dies bedeutet NUR LESEN
Rolf
|
|
|