Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 242899 (4335)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Eigenschaften Verzeichnis
Tilo Mayer
| 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
Sven Schmidts
| 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
René Wagner
| 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é
Sven Schmidts
| Datum:14.06.02 12:04 (schmidts@flat2serv.de) |
So meinte ich es ja ... ;)
Tilo Mayer
| 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
Frank Abbing
| 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
Jörg Sellmeyer
| 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
Rolf Koch
| 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
Sven Schmidts
| 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
Tilo Mayer
| 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
Jörg Sellmeyer
| 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
Rolf Koch
| 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
Tilo Mayer
| 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
Rolf Koch
| 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

| Zurück zur Übersicht