Français
Forum

Verzeichnis avec allem enthaltenen Fichiers et Unterverzeichnissen (restlos) effacer

 
- page 1 -



Julian
Schmidt
comment peux on un Verzeichnis am elegantesten avec allen Unterverzeichnissen et allem enthaltenen Fichiers effacer?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
24.07.2011  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »

- page 3 -



Dieter
Zornow
pourquoi prends du pas simple qui API zum effacer. ici est un flexibler Code pour Effacer, Kopieren débaptiser et Bewegen. Je pour paramètre peux du dans den corbeille à papier ou bien aussi pas effacer, entier comment tu veux. cela erspart doch den ganzen Hickhack et arbeitet zuverlässig. Im Beispiel wird sans demande un Verzeichnis avec Unterverzeichnissen pas dans den corbeille à papier gelöscht
' paramètre 1: Auszuführende Operation=COPY, DELETE, RENAME, MOVE
' paramètre 2: Quelldatei(en)
' paramètre 3: Zielldatei(en)
' paramètre 4: 0 = Benutzer fragen, 1= sans demande effacer
' paramètre 5: 0 = dans corbeille à papier Déplacer, 1= "endgültig" effacer
' paramètre 6: 0 = démolir chez vorhandener Dossier, 1 = Kopie qui Dossier anlegen

Proc SHFileoperation

    Paramètres opération$,File$,File2$,confirm%,recycle%,can%
    Déclarer opstruct#,file#,file2#,title#,operation&
    Var FOF_Flag% = 1 | 512 |  2048'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
    Faible title#,24
    string title#,0 = "Fileoperation Progress"

    Select upper$(opération$)

        CaseOf "RENAME"

        operation&=4

        CaseOf "COPY"

        operation&=2

        CaseOf "MOVE"

        operation&=1

        CaseOf "DELETE"

        operation&=3

    endselect

    cas confirm%:confirm%=16
    Casenot recycle%:recycle%=64

    Si can%

        FOF_Flag% = FOF_Flag% | confirm% | recycle% | $20 | 8'$20 = FOF_WANTMAPPINGHANDLE 8 = FOF_RENAMEONCOLLISION

    D'autre

        FOF_Flag% = FOF_FLAG% | confirm% | recycle%'16 = FOF_NOCONFIRMATION,64 = FOF_ALLOWUNDO

    endif

    Faible opstruct#,30:Faible file#,(Len(file$)+2):Faible file2#,(Len(file2$)+2)
    String file#,0=(file$+Chr$(0)):String file2#,0=(file2$+Chr$(0))
    Long opstruct#,0=GetActiveWindow()' Handle des aufrufenden Fensters
    Long opstruct#,4=operation&'quelle Dateioperation gemacht wird
    Long opstruct#,8=file#' pfrom : ici qui Fichiers pour qui opération
    Long opstruct#,12=file2#'pto ici qui Zieldateinamen ou bien 0
    Word opstruct#,16=FOF_Flag%
    Long opstruct#,18=0'chez abbruch steht ici 1 seulement chez langen Operationen
    Long opstruct#,22=0' muss toujours zéro son, ici wird handle pour SHNameMappings gesetzt chez Kopie
    Long opstruct#,26=Title#'Überschrift des Fortschrittsdialogs chez langen Operationen
    Var FEHLER&=Externe("SHELL32","SHFileOperationA",opstruct#)

    IF (long(opstruct#,18)=1)

        MessageBox("Die Dateioperation wurde abgebrochen!","Abbruch par Benutzer!",64)

    ELSEIF (Fehler& <> 0)

        MessageBox(str$(fehler&),"Es est un faute aufgetreten",16)

    EndIf

    Si val($WinVer)> 5.0

        Cas LONG(opstruct#,22) <> 0:Externe("Shell32","SHFreeNameMappings",LONG(opstruct#,22))'min XP

    endif

    Dispose file#,file2#,opstruct#,title#

ENDPROC

cls
SHFileoperation("Delete","c:\\Temp\\Test\\",»,1,1,0)
imprimer "fertig"
Waitinput
end
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
26.07.2011  
 



 
- page 2 -



Julian
Schmidt
Jörg Sellmeyer (25.07.11)
Aussi nützt Dir que voici:
cas @GETDIR $("@")=Pfad$ : AddFiles("*.*",h&,1)

rien, um peut-être. une faute abzufangen, là Dein Programme so ou bien so weitermacht. si, ensuite une vernünftige iF-Abfrage dans qui Du aussi une Alternative programmierst. alors une Messagebox "Falscher Pfad" ou bien quelque chose comme.


cls
delete_folder_completely("C:\\Test")
'delete_folder_completely(ChooseDir$(Annuaire choisir:"))

Proc delete_folder_completely

    Paramètres Pfad$
    declare faute%,z%,h&
    var addfiles.dll&=ImportDLL("addfiles.dll",»)

    tandis que 1

        si DirExists(Pfad$)

            h&=Créer("List", 0)
            Chdir Pfad$

            si @GETDIR $("@")=Pfad$

                AddFiles("*.*",h&,1)
                MoveListToHandle(h&)

                whileloop GetCount(h&)

                    si Left $(GetString$(h&,&loop-1),Len(Pfad$))=Pfad$

                        si FileExists(GetString$(h&,&loop-1))

                            Effacer GetString$(h&,&loop-1)

                            si FileExists(GetString$(h&,&loop-1))

                                Messagebox("Die Dossier '"+GetString$(h&,&loop-1)+"' konnte pas gelöscht volonté!","ERROR",16)
                                faute%=faute%+1

                            Endif

                        Endif

                    Endif

                Endwhile

                clearlist h&
                Chdir Pfad$

                si @GETDIR $("@")=Pfad$

                    AddDirs("*.*",h&,1)

                    whileloop GetCount(h&),1,-1

                        si Left $(GetString$(h&,&loop-1),Len(Pfad$))=Pfad$

                            si DirExists(GetString$(h&,&loop-1))

                                RmDir GetString$(h&,&loop-1)

                                si DirExists(GetString$(h&,&loop-1))

                                    Messagebox("Das Verzeichnis '"+GetString$(h&,&loop-1)+"' konnte pas gelöscht volonté!","ERROR",16)
                                    faute%=faute%+1

                                Endif

                            Endif

                        Endif

                    Endwhile

                    si @GETDIR $("@")=Pfad$

                        si DirExists(Pfad$)

                            RmDir Pfad$

                            si DirExists(Pfad$)

                                Messagebox("Das Verzeichnis '"+Pfad$+"' konnte pas gelöscht volonté!","ERROR",16)
                                faute%=faute%+1

                            Endif

                        Endif

                    d'autre

                        Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

                    Endif

                d'autre

                    Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

                Endif

            d'autre

                Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

            Endif

        d'autre

            Messagebox("Der Pfad '"+Pfad$+"' ist pas vorhanden","ERROR",16)

        Endif

        si faute%=0

            pause

        d'autre

            z%=Messagebox("Das Effacer des Ordnes '"+Pfad$+"' était pas erfolgreich! voulez-vous es Wiederholen?","INFO",5+64+256+4096)

            si z%=4

                faute%=0

            d'autre

                pause

            Endif

        Endif

    Endwhile

    destroywindow(h&)
    FreeDLL addfiles.dll&

ENDPROC


Jörg Sellmeyer (25.07.11)
Du springst avec ChDir dans den Dossier rein. Es peux bien son, qui cette dadurch blockiert wird et Du seulement effacer peux, si Du wieder aus dem Dossier rausgehst: ChDir ".."


comment pourrait je quelque chose comme dans den Code einbeziehen?

iF (25.07.11)
pourquoi une Dossier/ Dossier sich pas entfernen peut... irgend un Prozess wird arrêt encore am ou bien im Verzeichnis rumwuseln et un Handle tenir - vlt. qui Explorer qui à seiner caché thumbs.db klebt ou bien un AV-Programme ou bien un Indizierungsdienst


cela habe je bereits vermutet! j'ai deswegen versucht den Dossier freizugeben, den ordinateur neugestartet, Explorer.exe finissez. après ging es, comment zuvor également pas! Anschließend habe je sur Unlocker überprüft si un Prozess den Dossier verwendet. qui Sagte mir cela il pas dans Verwendung ist! Pour einem weiteren Test des Löschens ging es wieder pas. Liegt etwa am Quellcode, bzw. à RmDir? ou bien weil XProfan selbst cette Dossier blockiert.

iF (25.07.11)
ou bien ou bien ou bien... nutze testweise qui addFile.DLL comment im Beispiel aussi la fois per external statt per importdll um aussi auszuschließen si je là oublier qc habe un Handle trop schließen.


Muss je qui DLL devant encore iwie einbinden [UseDLL ou bien so?]?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.07.2011  
 



non, simple seulement Externe.
 
25.07.2011  
 




Julian
Schmidt
Über den Aufruf sur Externe venez wiederum une Fehlermeldung.
Liegt es vlt daran le moi den kompletten Pfad zur DLL angeben muss?
delete_folder_completely("C:\\Test")
'delete_folder_completely(ChooseDir$(Annuaire choisir:"))

Proc delete_folder_completely

    Paramètres Pfad$
    declare faute%,z%,h&
    'var addfiles.dll&=ImportDLL("addfiles.dll",»)

    tandis que 1

        si DirExists(Pfad$)

            h&=Créer("List", 0)
            Chdir Pfad$

            si @GETDIR $("@")=Pfad$

                'AddFiles("*.*",h&,1)
                external("addfiles.dll","AddFiles","*.*",h&,1)
                MoveListToHandle(h&)

                whileloop GetCount(h&)

                    si Left $(GetString$(h&,&loop-1),Len(Pfad$))=Pfad$

                        si FileExists(GetString$(h&,&loop-1))

                            Effacer GetString$(h&,&loop-1)

                            si FileExists(GetString$(h&,&loop-1))

                                Messagebox("Die Dossier '"+GetString$(h&,&loop-1)+"' konnte pas gelöscht volonté!","ERROR",16)
                                faute%=faute%+1

                            Endif

                        Endif

                    Endif

                Endwhile

                clearlist h&
                Chdir Pfad$

                si @GETDIR $("@")=Pfad$

                    'AddDirs("*.*",h&,1)
                    external("addfiles.dll","AddDirs","*.*",h&,1)

                    whileloop GetCount(h&),1,-1

                        si Left $(GetString$(h&,&loop-1),Len(Pfad$))=Pfad$

                            si DirExists(GetString$(h&,&loop-1))

                                RmDir GetString$(h&,&loop-1)

                                si DirExists(GetString$(h&,&loop-1))

                                    Messagebox("Das Verzeichnis '"+GetString$(h&,&loop-1)+"' konnte pas gelöscht volonté!","ERROR",16)
                                    faute%=faute%+1

                                Endif

                            Endif

                        Endif

                    Endwhile

                    si @GETDIR $("@")=Pfad$

                        si DirExists(Pfad$)

                            RmDir Pfad$

                            si DirExists(Pfad$)

                                Messagebox("Das Verzeichnis '"+Pfad$+"' konnte pas gelöscht volonté!","ERROR",16)
                                faute%=faute%+1

                            Endif

                        Endif

                    d'autre

                        Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

                    Endif

                d'autre

                    Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

                Endif

            d'autre

                Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

            Endif

        d'autre

            Messagebox("Der Pfad '"+Pfad$+"' ist pas vorhanden","ERROR",16)

        Endif

        si faute%=0

            pause

        d'autre

            z%=Messagebox("Das Effacer des Ordnes '"+Pfad$+"' était pas erfolgreich! voulez-vous es Wiederholen?","INFO",5+64+256+4096)

            si z%=4

                faute%=0

            d'autre

                pause

            Endif

        Endif

    Endwhile

    destroywindow(h&)
    'FreeDLL addfiles.dll&

ENDPROC

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.07.2011  
 




Jörg
Sellmeyer

den kompletten Pfad zur DLL angeben muss?


la hâte Du es déjà ausprobiert?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.07.2011  
 



 
- page 3 -



Julian
Schmidt
Jörg Sellmeyer (25.07.11)
Julian57 (25.07.11)
den kompletten Pfad zur DLL angeben muss?


la hâte Du es déjà ausprobiert?


non allez malheureusement pas.
Def DateiName(1) $ Substr(@$(1),-1,"\\")
Def DateiPfad(1) Translate$(@$(1),("\\" + DateiName(@$(1))),»)
delete_folder_completely("C:\\Test")
'delete_folder_completely(ChooseDir$(Annuaire choisir:"))

Proc delete_folder_completely

    Paramètres Pfad$
    declare faute%,z%,h&
    'var addfiles.dll&=ImportDLL("addfiles.dll",»)

    tandis que 1

        si DirExists(Pfad$)

            h&=Créer("List", 0)
            Chdir Pfad$

            si @GETDIR $("@")=Pfad$

                'AddFiles("*.*",h&,1)
                Messagebox(DateiPfad(Par$(1)) +"\\addfiles.dll",»,0)
                external(DateiPfad(Par$(1)) +"\\addfiles.dll","AddFiles","*.*",h&,1)
                MoveListToHandle(h&)

                whileloop GetCount(h&)

                    si Left $(GetString$(h&,&loop-1),Len(Pfad$))=Pfad$

                        si FileExists(GetString$(h&,&loop-1))

                            Effacer GetString$(h&,&loop-1)

                            si FileExists(GetString$(h&,&loop-1))

                                Messagebox("Die Dossier '"+GetString$(h&,&loop-1)+"' konnte pas gelöscht volonté!","ERROR",16)
                                faute%=faute%+1

                            Endif

                        Endif

                    Endif

                Endwhile

                clearlist h&
                Chdir Pfad$

                si @GETDIR $("@")=Pfad$

                    'AddDirs("*.*",h&,1)
                    external("addfiles.dll","AddDirs","*.*",h&,1)

                    whileloop GetCount(h&),1,-1

                        si Left $(GetString$(h&,&loop-1),Len(Pfad$))=Pfad$

                            si DirExists(GetString$(h&,&loop-1))

                                RmDir GetString$(h&,&loop-1)

                                si DirExists(GetString$(h&,&loop-1))

                                    Messagebox("Das Verzeichnis '"+GetString$(h&,&loop-1)+"' konnte pas gelöscht volonté!","ERROR",16)
                                    faute%=faute%+1

                                Endif

                            Endif

                        Endif

                    Endwhile

                    si @GETDIR $("@")=Pfad$

                        si DirExists(Pfad$)

                            RmDir Pfad$

                            si DirExists(Pfad$)

                                Messagebox("Das Verzeichnis '"+Pfad$+"' konnte pas gelöscht volonté!","ERROR",16)
                                faute%=faute%+1

                            Endif

                        Endif

                    d'autre

                        Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

                    Endif

                d'autre

                    Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

                Endif

            d'autre

                Messagebox("Der Pfad '"+Pfad$+"' konnte pas ouvert volonté!","ERROR",16)

            Endif

        d'autre

            Messagebox("Der Pfad '"+Pfad$+"' ist pas vorhanden","ERROR",16)

        Endif

        si faute%=0

            pause

        d'autre

            z%=Messagebox("Das Effacer des Ordnes '"+Pfad$+"' était pas erfolgreich! voulez-vous es Wiederholen?","INFO",5+64+256+4096)

            si z%=4

                faute%=0

            d'autre

                pause

            Endif

        Endif

    Endwhile

    destroywindow(h&)
    'FreeDLL addfiles.dll&

ENDPROC

 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.07.2011  
 




Jörg
Sellmeyer
pourquoi fais Du es Dir (et uns) so schwer? tu veux doch seulement rauskriegen, si Du qui Dll richtig lädtst. alors simple la fois une minimalsten Code, dans dem Du qui Dll lädst et une Aktion ausführst:
pourquoi devoir wir uns qui Aider zur Dll durchlesen, si Du es pas fais?
là devrait qui paramètre stehen, qui chaque Funktionen erwarten et dans qui Profanhilfe steht, comment qui Aufruf avec Externe funktioniert. Du devrait aucun Funktionen à qui Dllaufrufe transfert, mais Variablen. alors pas:
external(DateiPfad(Par$(1)) +"\\addfiles.dll","AddFiles","*.*",h&,1)

Statt dessen so:
DLL$ = DateiPfad(Par$(1)) +"\\addfiles.dll"
Externe(DLL$,"AddFiles","*.*",h&,1)

et à vrai dire: Votre imbriquées Si-Struktur verstehe je gar pas

tu dois doch seulement überprüfen, si cela Verzeichnis, cela Deiner Löschprozedur avec Paramètres transfert wird, vorhanden ist.
alors quelque chose so:
Proc loesch

    Paramètres Pfad$

    Si DirExists(Pfad$)

        'ici qui Code zum Effacer - alors liste füllen et abarbeiten

    D'autre

        'ici une Fehlermeldung

    EndIf

ENDPROC


avec dem Pfad zur Dll: Es hängt en ab, wohin vous sich est. si vous im Windowsordner ou bien einem anderen Dossier im Systempfad ist, wird vous direct trouvé.
si vous im Programmordner Deines Programmes liegt, wird vous aussi trouvé. important hierbei: Solange Du entwickelst et Prf-Fichiers startest, ist peut-être. qui Profanordner qui Programmordner!
si vous irgendwoanders liegt, doit qui Pfad angegeben volonté.
Mach une trois- jusqu'à Fünfzeiler et je teste volontiers.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
26.07.2011  
 



Jörg Sellmeyer (26.07.11)
Pfad$ = DateiPfad(Par$(1)) +"\\addfiles.dll"
DateiPfad(Pfad$,"AddFiles","*.*",h&,1)


je crois Du meintest Externe statt DateiPfad:
Pfad$ = DateiPfad(Par$(1)) +"\\addfiles.dll"
Externe(Pfad$,"AddFiles","*.*",h&,1)

@Julian: Vermutlich wäre es "ordentlicher" si Du qui DLL(s) qui Du besoin chez Nichtvorhandensein pour appdata/roflmao ablegst et là aussi lädst.
 
26.07.2011  
 




Dieter
Zornow
pourquoi prends du pas simple qui API zum effacer. ici est un flexibler Code pour Effacer, Kopieren débaptiser et Bewegen. Je pour paramètre peux du dans den corbeille à papier ou bien aussi pas effacer, entier comment tu veux. cela erspart doch den ganzen Hickhack et arbeitet zuverlässig. Im Beispiel wird sans demande un Verzeichnis avec Unterverzeichnissen pas dans den corbeille à papier gelöscht
' paramètre 1: Auszuführende Operation=COPY, DELETE, RENAME, MOVE
' paramètre 2: Quelldatei(en)
' paramètre 3: Zielldatei(en)
' paramètre 4: 0 = Benutzer fragen, 1= sans demande effacer
' paramètre 5: 0 = dans corbeille à papier Déplacer, 1= "endgültig" effacer
' paramètre 6: 0 = démolir chez vorhandener Dossier, 1 = Kopie qui Dossier anlegen

Proc SHFileoperation

    Paramètres opération$,File$,File2$,confirm%,recycle%,can%
    Déclarer opstruct#,file#,file2#,title#,operation&
    Var FOF_Flag% = 1 | 512 |  2048'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
    Faible title#,24
    string title#,0 = "Fileoperation Progress"

    Select upper$(opération$)

        CaseOf "RENAME"

        operation&=4

        CaseOf "COPY"

        operation&=2

        CaseOf "MOVE"

        operation&=1

        CaseOf "DELETE"

        operation&=3

    endselect

    cas confirm%:confirm%=16
    Casenot recycle%:recycle%=64

    Si can%

        FOF_Flag% = FOF_Flag% | confirm% | recycle% | $20 | 8'$20 = FOF_WANTMAPPINGHANDLE 8 = FOF_RENAMEONCOLLISION

    D'autre

        FOF_Flag% = FOF_FLAG% | confirm% | recycle%'16 = FOF_NOCONFIRMATION,64 = FOF_ALLOWUNDO

    endif

    Faible opstruct#,30:Faible file#,(Len(file$)+2):Faible file2#,(Len(file2$)+2)
    String file#,0=(file$+Chr$(0)):String file2#,0=(file2$+Chr$(0))
    Long opstruct#,0=GetActiveWindow()' Handle des aufrufenden Fensters
    Long opstruct#,4=operation&'quelle Dateioperation gemacht wird
    Long opstruct#,8=file#' pfrom : ici qui Fichiers pour qui opération
    Long opstruct#,12=file2#'pto ici qui Zieldateinamen ou bien 0
    Word opstruct#,16=FOF_Flag%
    Long opstruct#,18=0'chez abbruch steht ici 1 seulement chez langen Operationen
    Long opstruct#,22=0' muss toujours zéro son, ici wird handle pour SHNameMappings gesetzt chez Kopie
    Long opstruct#,26=Title#'Überschrift des Fortschrittsdialogs chez langen Operationen
    Var FEHLER&=Externe("SHELL32","SHFileOperationA",opstruct#)

    IF (long(opstruct#,18)=1)

        MessageBox("Die Dateioperation wurde abgebrochen!","Abbruch par Benutzer!",64)

    ELSEIF (Fehler& <> 0)

        MessageBox(str$(fehler&),"Es est un faute aufgetreten",16)

    EndIf

    Si val($WinVer)> 5.0

        Cas LONG(opstruct#,22) <> 0:Externe("Shell32","SHFreeNameMappings",LONG(opstruct#,22))'min XP

    endif

    Dispose file#,file2#,opstruct#,title#

ENDPROC

cls
SHFileoperation("Delete","c:\\Temp\\Test\\",»,1,1,0)
imprimer "fertig"
Waitinput
end
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
26.07.2011  
 




Julian
Schmidt
Dieter Zornow (26.07.11)
pourquoi prends du pas simple qui API zum effacer. ici est un flexibler Code pour Effacer, Kopieren débaptiser et Bewegen. Je pour paramètre peux du dans den corbeille à papier ou bien aussi pas effacer, entier comment tu veux. cela erspart doch den ganzen Hickhack et arbeitet zuverlässig. Im Beispiel wird sans demande un Verzeichnis avec Unterverzeichnissen pas dans den corbeille à papier gelöscht
' paramètre 1: Auszuführende Operation=COPY, DELETE, RENAME, MOVE
' paramètre 2: Quelldatei(en)
' paramètre 3: Zielldatei(en)
' paramètre 4: 0 = Benutzer fragen, 1= sans demande effacer
' paramètre 5: 0 = dans corbeille à papier Déplacer, 1= "endgültig" effacer
' paramètre 6: 0 = démolir chez vorhandener Dossier, 1 = Kopie qui Dossier anlegen

Proc SHFileoperation

    Paramètres opération$,File$,File2$,confirm%,recycle%,can%
    Déclarer opstruct#,file#,file2#,title#,operation&
    Var FOF_Flag% = 1 | 512 |  2048'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
    Faible title#,24
    string title#,0 = "Fileoperation Progress"

    Select upper$(opération$)

        CaseOf "RENAME"

        operation&=4

        CaseOf "COPY"

        operation&=2

        CaseOf "MOVE"

        operation&=1

        CaseOf "DELETE"

        operation&=3

    endselect

    cas confirm%:confirm%=16
    Casenot recycle%:recycle%=64

    Si can%

        FOF_Flag% = FOF_Flag% | confirm% | recycle% | $20 | 8'$20 = FOF_WANTMAPPINGHANDLE 8 = FOF_RENAMEONCOLLISION

    D'autre

        FOF_Flag% = FOF_FLAG% | confirm% | recycle%'16 = FOF_NOCONFIRMATION,64 = FOF_ALLOWUNDO

    endif

    Faible opstruct#,30:Faible file#,(Len(file$)+2):Faible file2#,(Len(file2$)+2)
    String file#,0=(file$+Chr$(0)):String file2#,0=(file2$+Chr$(0))
    Long opstruct#,0=GetActiveWindow()' Handle des aufrufenden Fensters
    Long opstruct#,4=operation&'quelle Dateioperation gemacht wird
    Long opstruct#,8=file#' pfrom : ici qui Fichiers pour qui opération
    Long opstruct#,12=file2#'pto ici qui Zieldateinamen ou bien 0
    Word opstruct#,16=FOF_Flag%
    Long opstruct#,18=0'chez abbruch steht ici 1 seulement chez langen Operationen
    Long opstruct#,22=0' muss toujours zéro son, ici wird handle pour SHNameMappings gesetzt chez Kopie
    Long opstruct#,26=Title#'Überschrift des Fortschrittsdialogs chez langen Operationen
    Var FEHLER&=Externe("SHELL32","SHFileOperationA",opstruct#)

    IF (long(opstruct#,18)=1)

        MessageBox("Die Dateioperation wurde abgebrochen!","Abbruch par Benutzer!",64)

    ELSEIF (Fehler&  0)

        MessageBox(str$(fehler&),"Es est un faute aufgetreten",16)

    EndIf

    Si val($WinVer)> 5.0

        Cas LONG(opstruct#,22)  0:Externe("Shell32","SHFreeNameMappings",LONG(opstruct#,22))'min XP

    endif

    Dispose file#,file2#,opstruct#,title#

ENDPROC

cls
SHFileoperation("Delete","c:\\Temp\\Test\\",»,1,1,0)
imprimer "fertig"
Waitinput
end



oui c'est ca so quelque chose habe je gesucht!
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
26.07.2011  
 




E.T.
Julian57 (26.07.11)
oui c'est ca so quelque chose habe je gesucht!


...mais bestimmt pas ici avec qui Foren-eigenen Suchfunktion ,
z.B.  [...]  (steht là depuis 2007 !!)
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
26.07.2011  
 




Julian
Schmidt
je veux qui Fichiers oui aussi pas dans corbeille à papier Déplacer. ^ ^
Über cela Forum habe je seulement "Verzeichnis" gesucht. et sur Strg+F anschließend pour "löschen", "loeschen" gesucht, wohin pas cela quoi je suchte trouvé wurde...
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
26.07.2011  
 



Jupp, était pas simple pour trouver -

tout autor fais je mir toujours qui Mühe solche Source avec relevanten Suchbegriffen trop versehen um einzusortieren.
 
26.07.2011  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

30.870 Views

Untitledvor 0 min.
E.T.22.11.2023
Georg21.01.2021
AndreasS23.12.2018
Klaus Ernst09.01.2018
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie