Einsteigerfragen zur PROFAN Programmierung

| Suchen
| Zurück zur Übersicht

Autor | Thema: Ordner mit Inhalt Löschen
Florian May
| Datum:10.07.02 18:13 |
Ist es möglich, ein Ornder, der Dateien enthält zu löschen? ich weiss das nur leere Ordner gelöscht werden können, aber ist es irgendwie möglich?
Sebastian Sprenger
| Datum:10.07.02 21:04 (prof.chaos@netcologne.de) |
Hallo Florian, es gibt zwei Möglichkeiten: 1. Im Verzeichnis C:\WINDOWS\COMMAND\ findet man ein DOS-Programm namens DELTREE.EXE. Aufrufen kann man es so:
    winexec($winpath+"\COMMAND\DELTREE.EXE /Y D:\MUELL\",0)
2. alle Dateinamen in eine ListBox (AddFiles*) schreiben und die Dateien dann löschen. Sebastian
Mischa Brandt
| Datum:10.07.02 21:40 (mischabrandt@gmx.de) |
Ähm..zumindest 3 Möglichkeiten? ;-) 'SHFileOperation' (siehe API-Referenz) Falls Du einen Quelltext zur veranschaulichung brauchst.. ..kann ich Dir einen schicken. Gruß, Mischa
carlo keil
| Datum:10.07.02 22:33 (carlo.keil@web.de) |
Hallo Mischa, wie wär´s mit posten statt mailen? Dann hätten alle was davon (ich natürlich auch). Danke Carlo
Mischa
| Datum:11.07.02 09:14 |
Hallo! Ich hoffe es ist in Ordnung den Quellcode zu posten, ist ja schließlich nicht von mir. :-) Sonst bitte beschweren, Thomas, dann tue ich es nicht wieder.. ' PRFellow- Vorlage ' Autor: Thomas Hölzer ' Löscht einen Ordner mit Unterordnern ' Funktioniert auch mit einer oder mehreren Datei(en) ' Vorsicht bitte und darauf achten, daß kein Ordner C:\BlaBla20 besteht!! Def SHFileOperation(1) !"SHELL32","SHFileOperationA" Declare opstruct#,dir# Proc Delete32 ' Löscht im Parameter (1) angegebenen Ordner samt Unterordnern (oder Datei) ' Parameter 2: 0 = User erst fragen, 1= ohne Nachfrage löschen ' Parameter 3: 0 = In Papierkorb verschieben, 1= "endgültig" löschen Parameters dir$,noconfirm%,norecycle% Declare FOF_Flag% Case noconfirm%: Let noconfirm%=16 CaseNot norecycle%: Let norecycle%=64 Let FOF_Flag% = Or(noconfirm%,norecycle%) Dim opstruct#,30 Dim dir#,Add(Len(dir$),2) ' Platz für 2(!) Null-Bytes lassen String dir#,0=Add$(dir$,Chr$(0)) ' Das Nullbyte MUSS hier angehängt werden, ' weil die Funktion am Ende 2 Null-Bytes erwartet ' Das hängt damit zusammen, daß mehrere Dateien/Ordner ' hintereinander in einem String übergeben werden können, ' die dann jeweils durch 1 einzelnes Null-Byte getrennt werden. ' Eine gute Alternative: Den ganzen "Bereich" dir# ' vorab mit Null-Bytes auffüllen. Long opstruct#,0=%hwnd ' Handle des aufrufenden Fensters Long opstruct#,4=3 ' FO_Delete Long opstruct#,8=dir# ' pfrom : hier der zu löschende Ordner Long opstruct#,12=0 ' pto (muß 0 oder eine Bereichvar. mit Zieldateinamen ' z.B. bei Umbenennung sein Word opstruct#,16=FOF_Flag% Long opstruct#,18=0 ' Hier steht nach dem Aufruf 1, wenn User abgebrochen hat Long opstruct#,22=0 ' Unbedingt immer auf Null setzen! Long opstruct#,26=0 ' Zeiger(Bereich) auf Überschrift des Fortschrittsdialogs IF Gt(ShFileOperation(opstruct#),0) MessageBox("Es ist ein Fehler aufgetreten","ShFileOperation",16) EndIf Dispose dir# Dispose opstruct# EndProc ' Beispiele ''Cls ''MkDir "C:\BlaBla20" ''MkDir "C:\BlaBla20\MehrBlaBla" ''Delete32 "C:\BlaBla20\MehrBlaBla",0,0 ' Fragen und in Papierkorb verschieben '' ''' Beispiel, wie man 2 Dateien (durch 0-Byte getrennt löschen kann) ''' Declare files$ ''' Let files$="C:\BLABLA1.TXT";Chr$(0);"C:\BLABLA2.TXT" ''' DelTree32 files$,0,0 Gruß, Mischa
Roland G. Hülsmann
| Datum:11.07.02 11:24 (rgh-soft@t-online.de) |
Hallo Mischa, gemäß der beiliegenden Lizenzbestimmungen ist es generell untersagt, PRFellow-Vorlagen als Qelltext weiterzugeben. Es wäre also besser gewesen, lediglich den Namen der Vorlage und den Hinweis, daß sie aus PRFellow stammt zu posten. Das reicht dem Hilfesuchenden! BTW: Und für weitere Fragen zu PRFellow gibt es mittlerweise auf der Seite von Bernd Haase einen eigenen Bereich mit Downloads und Forum: http://www.ebs-haase.de/ Gruß Roland
Mischa Brandt
| Datum:11.07.02 19:57 (mischabrandt@gmx.de) |
Danke für den Hinweis, Roland, habs ja nur gut gemeint. :-( Mir ist nicht die Macht gegeben den Eintrag zu entfernen..Also bitte entferne Du ihn, bevor ich noch verklagt werde. :-( (Trotzdem finde ich Thomas Vorlagen sehr lehrreich, also kann ich auch nur wärmstens empfehlen bei Bernd Haase vorbeizuschauen) mit sowieso schon müden Grüßen (nach 20 Stunden Programmier-Marathon) Mischa
Rolf Koch
| Datum:10.07.02 23:54 (webmaster@rokosoft.de) |
Hi, @Sebastian Das mit dem C:\WINDOWS\COMMAND\ ist ein bisschen gefährlich, da es z.B. unter XP kein Commandordner gibt. Und auch die Datei Deltree.exe suche ich vergebens ;) Rolf
Dr. Mabuse
| Datum:11.07.02 20:22 |
Was soll so ein Blödsinn? Man kann keine API's schützen, die stammen von Microsoft. Oder wird man dann verklagt? Man man man ...
Florian May
| Datum:11.07.02 21:11 |
aber verboten diese zu verwenden ist es doch nicht oder ?
Mischa
| Datum: 11.07.02 21:22 |
Danke Dr.M. :-) Aber Roand hat Recht, ich habe mir die Lizenzbestimmung von PrFellow noch mal durchgelesen. (Das hätte ich vorher mal gründlicher tuen sollen..seufz) In dieser wird ausdrücklich untersagt die 'Quelltexte' in DIESER Form zu veröffentlichen, weiterzugeben,etc. Ich war in dem Glauben, daß sie NUR in dieser Form zu belassen sein sollten. (Keine Änderungen, usw) Es geht dabei ja nicht um die API_Aufrufe, Funktionen, sondern vielmehr um die Hinweise, Beschreibung, Kommentare, Übersetzungen, und die sind in DIESER Form geistiges Eigentum von Thomas! Und gerade in der Schwierigkeit für Anfänger, API-Funktionen in Profan ordnungsgemäß zu übersetzen und einzusetzen, liegt ja die wahre 'Dienstleistung' von Thomas Vorlagen. Letztendlich bin ich mittlerweile dazu in der Lage, so einige API_Aufrufe selbst umzusetzen (durch und mit der API-Referenz, usw), aber nichtzuletzt eben diese Quelltext-Vorlagen haben mein Verständnis hierfür stark gefördert. Auch die hier thematisierte Funktion habe ich in abgewandelter Form mittlerweile in ZWEI Sprachen unlängst umgesetzt, aber eben DIESE Vorlage hat es mir erleichtert, und ich wollte mich nicht mit fremden Lorbeeren bekleiden, daher habe ich mir gedacht eben DIESEN Quelltext zu nehmen, der ja schon meine Vorlage gewesen ist und weil er so gut dokumentiert ist, das dem nichts mehr hinzuzufügen ist. Das haben Thomas (und auch andere) mit sicherlich viel Mühe gemacht, denn es gibt ja 'ne Menge Vorlagen. Und eben DIES ist die 'Dienstleistung' und damit das geistige 'Eigentum' eines Thomas Hölzer! Das der spitzen 'Lizenzbestimmmung' auch sicherlich ein anderer Konflikt zu Grunde liegt, ist bekannt und muß nicht nochmal thematisiert werden. Eine Lizenzbestimmung ist nun mal eine Lizenzbestimmung, das liegt ganz in der Entscheidung des Urhebers! Wenn ich das nächste mal hier jemandem helfen möchte, werde ich das mit einer eigenen Vorlage tuen, die zwar dann sicherlich auf den API_Funktionen aufbaut, die auch ANDERE verwandt haben, aber von MIR dokumentiert sein wird. Dann dauert es halt etwas länger, aber ich verstoße nicht gegen ein 'Copyright'. Ich kann nur wiederholen: Ich habs gut gemeint und wollte nicht den Dank, der einem anderen gebührt. Mit schuldbewußten und sehr müden Grüßen, (nach ca 21 Stunden ProgMarathon mit kurzer Schreib/Esspause) Mischa

| Zurück zur Übersicht

| Ein kostenloses WebMart Forum WebMart Homepage Tools kostenlos |