Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 242899 (4335)
  Suchen
 Zurück zur Übersicht
 AutorThema: Eigenschaften Verzeichnis
Tilo Mayer
Datum:14.06.02 10:05 Antwortenals Email verschicken (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


Sven Schmidts
Datum:14.06.02 11:27 Antwortenals Email verschicken (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


René Wagner
Datum:14.06.02 11:47 Antwortenals Email verschicken (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é


Sven Schmidts
Datum:14.06.02 12:04 Antwortenals Email verschicken (schmidts@flat2serv.de) 


So meinte ich es ja ... ;)


Tilo Mayer
Datum:14.06.02 14:11 Antwortenals Email verschicken (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


Frank Abbing
Datum:14.06.02 14:45 Antwortenals Email verschicken  


Hallo,

du wendest einfach @filesize an auf alle gefundenen Files und addierst die Längen der Dateien...

Gruß, Frank


Jörg Sellmeyer
Datum:14.06.02 14:51 Antwortenals Email verschicken (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


Rolf Koch
Datum:14.06.02 18:19 Antwortenals Email verschicken (webmaster@rokosoft.de) 


... und im Hintergrund die Listbox
damit man diese nicht sieht:
CREATE("LISTBOX",%HWND,"",0,0,0,0)
Rolf


Sven Schmidts
Datum:14.06.02 20:56 Antwortenals Email verschicken (schmidts@flat2serv.de) 


... unsichtbar, aber bitte mit cooler Schrift:

hFont% = @Create("Font","Arial",20,12,0,0,0)
SetFont Listbox%,hFont%

;)
Sven


Tilo Mayer
Datum:15.06.02 13:58 Antwortenals Email verschicken (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


Jörg Sellmeyer
Datum:15.06.02 14:20 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo Tilo,
Mach's doch mal umgekehrt. Poste Deinen Quellcode.
Vielleicht ist es ja nur ein kleiner Haken.
Gruß
Jörg


Rolf Koch
Datum:15.06.02 14:34 Antwortenals Email verschicken (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


Tilo Mayer
Datum:15.06.02 17:33 Antwortenals Email verschicken (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


Rolf Koch
Datum: 15.06.02 17:40 Antwortenals Email verschicken (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


 Zurück zur Übersicht