Español
Foro

Directorio con allem enthaltenen Archivos y Unterverzeichnissen (restlos) löschen

 
- Página 1 -



Julian
Schmidt
¿Cómo se puede uno un directorio al elegantesten con allen Unterverzeichnissen y allem enthaltenen Archivos löschen?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
24.07.2011  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »

- Página 3 -



Dieter
Zornow
¿Por qué nimmst du no simplemente el API para löschen. Hier es una flexibler Code para Löschen, Kopieren Umbenennen y Bewegen. Je después de Parámetro kannst du en el Papierkorb oder auch no löschen, bastante como du willst. Das erspart doch el ganzen Hickhack y arbeitet zuverlässig. Im Ejemplo se sin Nachfrage un directorio con Unterverzeichnissen no en el Papierkorb gelöscht
' Parámetro 1: Auszuführende Operation=COPY, DELETE, RENAME, MOVE
' Parámetro 2: Quelldatei(en)
' Parámetro 3: Zielldatei(en)
' Parámetro 4: 0 = Benutzer fragen, 1= sin Nachfrage löschen
' Parámetro 5: 0 = In Papierkorb mover, 1= "endgültig" löschen
' Parámetro 6: 0 = Alto en vorhandener Expediente, 1 = Kopie el Expediente invertir

Proc SHFileoperation

    Parámetros operation$,File$,File2$,confirm%,recycle%,can%
    Declarar opstruct#,file#,file2#,title#,operation&
    Var FOF_Flag% = 1 | 512 |  2048'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
    Dim title#,24
    cadena title#,0 = "Fileoperation Progress"

    Select upper$(operation$)

        CaseOf "RENAME"

        operation&=4

        CaseOf "COPY"

        operation&=2

        CaseOf "MOVE"

        operation&=1

        CaseOf "DELETE"

        operation&=3

    endselect

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

    If can%

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

    Más

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

    endif

    Dim opstruct#,30:Dim file#,(Len(file$)+2):Dim file2#,(Len(file2$)+2)
    String file#,0=(file$+Chr$(0)):String file2#,0=(file2$+Chr$(0))
    Largo opstruct#,0=GetActiveWindow()' Handle des aufrufenden Fensters
    Largo opstruct#,4=operation&'Welche Dateioperation gemacht se
    Largo opstruct#,8=file#' pfrom : hier el Archivos para el Operation
    Largo opstruct#,12=file2#'pto hier el Zieldateinamen oder 0
    Word opstruct#,16=FOF_Flag%
    Largo opstruct#,18=0'En abbruch es hier 1 sólo en langen Operationen
    Largo opstruct#,22=0' muss siempre Null ser, hier se handle para SHNameMappings gesetzt en Kopie
    Largo opstruct#,26=Title#'Überschrift des Fortschrittsdialogs en langen Operationen
    Var FEHLER&=Externo("SHELL32","SHFileOperationA",opstruct#)

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

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

    ELSEIF (Fehler& <> 0)

        MessageBox(str$(fehler&),"Es es una Fehler aufgetreten",16)

    EndIf

    If val($WinVer)> 5.0

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

    endif

    Disponer file#,file2#,opstruct#,title#

ENDPROC

cls
SHFileoperation("Delete","c:\\Temp\\Test\\","",1,1,0)
imprimir "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  
 



 
- Página 2 -



Julian
Schmidt
Jörg Sellmeyer (25.07.11)
Außerdem nützt Usted que aquí:
caso @GetDir$("@")=Pfad$ : AddFiles("*.*",h&,1)

nichts, en evtl. una Fehler abzufangen, como Su Programa así más o menos weitermacht. Wenn, entonces una vernünftige IF-Abfrage en el Usted auch una Alternative programmierst. Also una Messagebox "Falscher Pfad" oder algo como.


cls
delete_folder_completely("C:\\Test")
'delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))

Proc delete_folder_completely

    Parámetros Pfad$
    declarar fehler%,z%,h&
    var addfiles.dll&=ImportDLL("addfiles.dll","")

    mientras que 1

        if DirExists(Pfad$)

            h&=Crear("List", 0)
            Chdir Pfad$

            if @GetDir$("@")=Pfad$

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

                whileloop GetCount(h&)

                    if Left$(GetString$(h&,&bucle-1),Len(Pfad$))=Pfad$

                        if FileExists(GetString$(h&,&bucle-1))

                            Borrar GetString$(h&,&bucle-1)

                            if FileExists(GetString$(h&,&bucle-1))

                                Messagebox("Die Expediente '"+GetString$(h&,&bucle-1)+"' podría no gelöscht voluntad!","ERROR",16)
                                fehler%=fehler%+1

                            Endif

                        Endif

                    Endif

                Endwhile

                clearlist h&
                Chdir Pfad$

                if @GetDir$("@")=Pfad$

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

                    whileloop GetCount(h&),1,-1

                        if Left$(GetString$(h&,&bucle-1),Len(Pfad$))=Pfad$

                            if DirExists(GetString$(h&,&bucle-1))

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

                                if DirExists(GetString$(h&,&bucle-1))

                                    Messagebox("Das Directorio '"+GetString$(h&,&bucle-1)+"' podría no gelöscht voluntad!","ERROR",16)
                                    fehler%=fehler%+1

                                Endif

                            Endif

                        Endif

                    Endwhile

                    if @GetDir$("@")=Pfad$

                        if DirExists(Pfad$)

                            RmDir Pfad$

                            if DirExists(Pfad$)

                                Messagebox("Das Directorio '"+Pfad$+"' podría no gelöscht voluntad!","ERROR",16)
                                fehler%=fehler%+1

                            Endif

                        Endif

                    más

                        Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

                    Endif

                más

                    Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

                Endif

            más

                Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

            Endif

        más

            Messagebox("Der Pfad '"+Pfad$+"' es no vorhanden","ERROR",16)

        Endif

        if fehler%=0

            romper

        más

            z%=Messagebox("Das Löschen des Ordnes '"+Pfad$+"' war no erfolgreich! Wollen Sie lo Wiederholen?","INFO",5+64+256+4096)

            if z%=4

                fehler%=0

            más

                romper

            Endif

        Endif

    Endwhile

    destroywindow(h&)
    FreeDLL addfiles.dll&

ENDPROC


Jörg Sellmeyer (25.07.11)
Usted springst con ChDir en el Ordner rein. Lo kann bien ser, daß dieser dadurch blockiert se y Usted sólo löschen kannst, si otra vez de el Ordner rausgehst: ChDir ".."


Como podría Yo algo como en el código einbeziehen?

IF (25.07.11)
¿Por qué una Expediente/ Ordner se no entfernen lässt... irgend una Prozess llevará a cabo todavía al o Directorio rumwuseln y una Handle halten - vlt. el Explorer el a su oculto thumbs.db klebt oder una AV-Programa oder una Indizierungsdienst


Das Yo ya vermutet! Yo habe deswegen intenta el Ordner freizugeben, el Computer neugestartet, Explorer.exe final. Danach ging lo, como zuvor ebenfalls no! Anschließend Yo encima Unlocker überprüft si una Prozess el Ordner verwendet. Der Sagte me él no en Verwendung es! Nach una más Test des Löschens ging lo otra vez no. Liegt etwa al Quellcode, o. a RmDir? Oder porque XProfan incluso esta Ordner blockiert.

IF (25.07.11)
oder oder oder... nutze testweise el AddFile.DLL como en el Ejemplo auch veces por external en lugar de por importdll en auch auszuschließen si Yo como vergessen habe una Handle a schließen.


Muss Yo el DLL davor todavía iwie einbinden [UseDLL más o menos?]?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.07.2011  
 



Nein, simplemente sólo Externo.
 
25.07.2011  
 




Julian
Schmidt
Über el Aufruf encima Externo kommt wiederum una Fehlermeldung.
Liegt lo vlt daran el Yo, el kompletten Pfad a DLL angeben muss?
delete_folder_completely("C:\\Test")
'delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))

Proc delete_folder_completely

    Parámetros Pfad$
    declarar fehler%,z%,h&
    'var addfiles.dll&=ImportDLL("addfiles.dll","")

    mientras que 1

        if DirExists(Pfad$)

            h&=Crear("List", 0)
            Chdir Pfad$

            if @GetDir$("@")=Pfad$

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

                whileloop GetCount(h&)

                    if Left$(GetString$(h&,&bucle-1),Len(Pfad$))=Pfad$

                        if FileExists(GetString$(h&,&bucle-1))

                            Borrar GetString$(h&,&bucle-1)

                            if FileExists(GetString$(h&,&bucle-1))

                                Messagebox("Die Expediente '"+GetString$(h&,&bucle-1)+"' podría no gelöscht voluntad!","ERROR",16)
                                fehler%=fehler%+1

                            Endif

                        Endif

                    Endif

                Endwhile

                clearlist h&
                Chdir Pfad$

                if @GetDir$("@")=Pfad$

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

                    whileloop GetCount(h&),1,-1

                        if Left$(GetString$(h&,&bucle-1),Len(Pfad$))=Pfad$

                            if DirExists(GetString$(h&,&bucle-1))

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

                                if DirExists(GetString$(h&,&bucle-1))

                                    Messagebox("Das Directorio '"+GetString$(h&,&bucle-1)+"' podría no gelöscht voluntad!","ERROR",16)
                                    fehler%=fehler%+1

                                Endif

                            Endif

                        Endif

                    Endwhile

                    if @GetDir$("@")=Pfad$

                        if DirExists(Pfad$)

                            RmDir Pfad$

                            if DirExists(Pfad$)

                                Messagebox("Das Directorio '"+Pfad$+"' podría no gelöscht voluntad!","ERROR",16)
                                fehler%=fehler%+1

                            Endif

                        Endif

                    más

                        Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

                    Endif

                más

                    Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

                Endif

            más

                Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

            Endif

        más

            Messagebox("Der Pfad '"+Pfad$+"' es no vorhanden","ERROR",16)

        Endif

        if fehler%=0

            romper

        más

            z%=Messagebox("Das Löschen des Ordnes '"+Pfad$+"' war no erfolgreich! Wollen Sie lo Wiederholen?","INFO",5+64+256+4096)

            if z%=4

                fehler%=0

            más

                romper

            Endif

        Endif

    Endwhile

    destroywindow(h&)
    'FreeDLL addfiles.dll&

ENDPROC

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




Jörg
Sellmeyer

el kompletten Pfad a DLL angeben muss?


Hast Usted lo ya ausprobiert?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.07.2011  
 



 
- Página 3 -



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


Hast Usted lo ya ausprobiert?


Nein va por desgracia, no.
Def DateiName(1) Substr$(@$(1),-1,"\\")
Def DateiPfad(1) Translate$(@$(1),("\\" + DateiName(@$(1))),"")
delete_folder_completely("C:\\Test")
'delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))

Proc delete_folder_completely

    Parámetros Pfad$
    declarar fehler%,z%,h&
    'var addfiles.dll&=ImportDLL("addfiles.dll","")

    mientras que 1

        if DirExists(Pfad$)

            h&=Crear("List", 0)
            Chdir Pfad$

            if @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&)

                    if Left$(GetString$(h&,&bucle-1),Len(Pfad$))=Pfad$

                        if FileExists(GetString$(h&,&bucle-1))

                            Borrar GetString$(h&,&bucle-1)

                            if FileExists(GetString$(h&,&bucle-1))

                                Messagebox("Die Expediente '"+GetString$(h&,&bucle-1)+"' podría no gelöscht voluntad!","ERROR",16)
                                fehler%=fehler%+1

                            Endif

                        Endif

                    Endif

                Endwhile

                clearlist h&
                Chdir Pfad$

                if @GetDir$("@")=Pfad$

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

                    whileloop GetCount(h&),1,-1

                        if Left$(GetString$(h&,&bucle-1),Len(Pfad$))=Pfad$

                            if DirExists(GetString$(h&,&bucle-1))

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

                                if DirExists(GetString$(h&,&bucle-1))

                                    Messagebox("Das Directorio '"+GetString$(h&,&bucle-1)+"' podría no gelöscht voluntad!","ERROR",16)
                                    fehler%=fehler%+1

                                Endif

                            Endif

                        Endif

                    Endwhile

                    if @GetDir$("@")=Pfad$

                        if DirExists(Pfad$)

                            RmDir Pfad$

                            if DirExists(Pfad$)

                                Messagebox("Das Directorio '"+Pfad$+"' podría no gelöscht voluntad!","ERROR",16)
                                fehler%=fehler%+1

                            Endif

                        Endif

                    más

                        Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

                    Endif

                más

                    Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

                Endif

            más

                Messagebox("Der Pfad '"+Pfad$+"' podría no geöffnet voluntad!","ERROR",16)

            Endif

        más

            Messagebox("Der Pfad '"+Pfad$+"' es no vorhanden","ERROR",16)

        Endif

        if fehler%=0

            romper

        más

            z%=Messagebox("Das Löschen des Ordnes '"+Pfad$+"' war no erfolgreich! Wollen Sie lo Wiederholen?","INFO",5+64+256+4096)

            if z%=4

                fehler%=0

            más

                romper

            Endif

        Endif

    Endwhile

    destroywindow(h&)
    'FreeDLL addfiles.dll&

ENDPROC

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




Jörg
Sellmeyer
¿Por qué machst Usted lo Usted (y uns) así schwer? Usted willst doch sólo rauskriegen, si Usted el Dll correcto lädtst. Also simplemente veces a la minimalsten Code, en el Usted el Dll lädst y una Aktion ausführst:
¿Por qué debería nosotros el Ayuda a Dll durchlesen, si no machst?
Dort debería el Parámetro posición, el cada Características esperar y el Profanhilfe es, como el Aufruf con Externo funktioniert. Usted debe no Características a el Dllaufrufe transferencia, pero Variables. Also no:
external(DateiPfad(Par$(1)) +"\\addfiles.dll","AddFiles","*.*",h&,1)

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

Und ehrlich dijo: Su verschachtelte If-Struktur verstehe Yo nada

Usted mußt doch sólo überprüfen, si el Directorio, el Deiner Löschprozedur con Parámetros transferencia se, disponible es.
Also algo así:
Proc loesch

    Parámetros Pfad$

    If DirExists(Pfad$)

        'hier el Code para Löschen - also Liste füllen y abarbeiten

    Más

        'Hier una Fehlermeldung

    EndIf

ENDPROC


Mit el Pfad a Dll: Lo hängt su de, wo ellos se befindet. Wenn ellos en el Windowsordner oder una otro Ordner en el Systempfad es, se ellos direkt gefunden.
Wenn ellos en el Programmordner Deines Programmes liegt, se ellos auch gefunden. Wichtig hierbei: Solange Usted entwickelst y Prf-Archivos startest, es evtl. el Profanordner el Programmordner!
Wenn ellos irgendwoanders liegt, muß el Pfad angegeben voluntad.
Mach una Drei- a Fünfzeiler y yo teste gerne.
 
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)


Yo glaube Usted meintest Externo en lugar de DateiPfad:
Pfad$ = DateiPfad(Par$(1)) +"\\addfiles.dll"
Externo(Pfad$,"AddFiles","*.*",h&,1)

@Julian: Vermutlich wäre lo "ordentlicher" si el DLL(s) el Usted necesidad en Nichtvorhandensein después de appdata/roflmao ablegst y hay auch lädst.
 
26.07.2011  
 




Dieter
Zornow
¿Por qué nimmst du no simplemente el API para löschen. Hier es una flexibler Code para Löschen, Kopieren Umbenennen y Bewegen. Je después de Parámetro kannst du en el Papierkorb oder auch no löschen, bastante como du willst. Das erspart doch el ganzen Hickhack y arbeitet zuverlässig. Im Ejemplo se sin Nachfrage un directorio con Unterverzeichnissen no en el Papierkorb gelöscht
' Parámetro 1: Auszuführende Operation=COPY, DELETE, RENAME, MOVE
' Parámetro 2: Quelldatei(en)
' Parámetro 3: Zielldatei(en)
' Parámetro 4: 0 = Benutzer fragen, 1= sin Nachfrage löschen
' Parámetro 5: 0 = In Papierkorb mover, 1= "endgültig" löschen
' Parámetro 6: 0 = Alto en vorhandener Expediente, 1 = Kopie el Expediente invertir

Proc SHFileoperation

    Parámetros operation$,File$,File2$,confirm%,recycle%,can%
    Declarar opstruct#,file#,file2#,title#,operation&
    Var FOF_Flag% = 1 | 512 |  2048'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
    Dim title#,24
    cadena title#,0 = "Fileoperation Progress"

    Select upper$(operation$)

        CaseOf "RENAME"

        operation&=4

        CaseOf "COPY"

        operation&=2

        CaseOf "MOVE"

        operation&=1

        CaseOf "DELETE"

        operation&=3

    endselect

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

    If can%

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

    Más

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

    endif

    Dim opstruct#,30:Dim file#,(Len(file$)+2):Dim file2#,(Len(file2$)+2)
    String file#,0=(file$+Chr$(0)):String file2#,0=(file2$+Chr$(0))
    Largo opstruct#,0=GetActiveWindow()' Handle des aufrufenden Fensters
    Largo opstruct#,4=operation&'Welche Dateioperation gemacht se
    Largo opstruct#,8=file#' pfrom : hier el Archivos para el Operation
    Largo opstruct#,12=file2#'pto hier el Zieldateinamen oder 0
    Word opstruct#,16=FOF_Flag%
    Largo opstruct#,18=0'En abbruch es hier 1 sólo en langen Operationen
    Largo opstruct#,22=0' muss siempre Null ser, hier se handle para SHNameMappings gesetzt en Kopie
    Largo opstruct#,26=Title#'Überschrift des Fortschrittsdialogs en langen Operationen
    Var FEHLER&=Externo("SHELL32","SHFileOperationA",opstruct#)

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

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

    ELSEIF (Fehler& <> 0)

        MessageBox(str$(fehler&),"Es es una Fehler aufgetreten",16)

    EndIf

    If val($WinVer)> 5.0

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

    endif

    Disponer file#,file2#,opstruct#,title#

ENDPROC

cls
SHFileoperation("Delete","c:\\Temp\\Test\\","",1,1,0)
imprimir "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)
¿Por qué nimmst du no simplemente el API para löschen. Hier es una flexibler Code para Löschen, Kopieren Umbenennen y Bewegen. Je después de Parámetro kannst du en el Papierkorb oder auch no löschen, bastante como du willst. Das erspart doch el ganzen Hickhack y arbeitet zuverlässig. Im Ejemplo se sin Nachfrage un directorio con Unterverzeichnissen no en el Papierkorb gelöscht
' Parámetro 1: Auszuführende Operation=COPY, DELETE, RENAME, MOVE
' Parámetro 2: Quelldatei(en)
' Parámetro 3: Zielldatei(en)
' Parámetro 4: 0 = Benutzer fragen, 1= sin Nachfrage löschen
' Parámetro 5: 0 = In Papierkorb mover, 1= "endgültig" löschen
' Parámetro 6: 0 = Alto en vorhandener Expediente, 1 = Kopie el Expediente invertir

Proc SHFileoperation

    Parámetros operation$,File$,File2$,confirm%,recycle%,can%
    Declarar opstruct#,file#,file2#,title#,operation&
    Var FOF_Flag% = 1 | 512 |  2048'FOF_MULTIDESTFILES,FOF_NOCONFIRMMKDIR,FOF_NOCOPYSECURITYATTRIBS
    Dim title#,24
    cadena title#,0 = "Fileoperation Progress"

    Select upper$(operation$)

        CaseOf "RENAME"

        operation&=4

        CaseOf "COPY"

        operation&=2

        CaseOf "MOVE"

        operation&=1

        CaseOf "DELETE"

        operation&=3

    endselect

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

    If can%

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

    Más

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

    endif

    Dim opstruct#,30:Dim file#,(Len(file$)+2):Dim file2#,(Len(file2$)+2)
    String file#,0=(file$+Chr$(0)):String file2#,0=(file2$+Chr$(0))
    Largo opstruct#,0=GetActiveWindow()' Handle des aufrufenden Fensters
    Largo opstruct#,4=operation&'Welche Dateioperation gemacht se
    Largo opstruct#,8=file#' pfrom : hier el Archivos para el Operation
    Largo opstruct#,12=file2#'pto hier el Zieldateinamen oder 0
    Word opstruct#,16=FOF_Flag%
    Largo opstruct#,18=0'En abbruch es hier 1 sólo en langen Operationen
    Largo opstruct#,22=0' muss siempre Null ser, hier se handle para SHNameMappings gesetzt en Kopie
    Largo opstruct#,26=Title#'Überschrift des Fortschrittsdialogs en langen Operationen
    Var FEHLER&=Externo("SHELL32","SHFileOperationA",opstruct#)

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

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

    ELSEIF (Fehler&  0)

        MessageBox(str$(fehler&),"Es es una Fehler aufgetreten",16)

    EndIf

    If val($WinVer)> 5.0

        Case LONG(opstruct#,22)  0:Externo("Shell32","SHFreeNameMappings",LONG(opstruct#,22))'min XP

    endif

    Disponer file#,file2#,opstruct#,title#

ENDPROC

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



Exactamente así algo Yo gesucht!
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
26.07.2011  
 




E.T.
Julian57 (26.07.11)
Exactamente así algo Yo gesucht!


...aber determinado no hier con el Foren-eigenen Suchfunktion ,
z.B.  [...]  (es como seit 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
Yo voluntad el Archivos en efecto no en Papierkorb mover. ^ ^
Über el Foro Yo sólo "Verzeichnis" gesucht. Und encima Strg+F anschließend después de "löschen", "loeschen" gesucht, wo no el Yo suchte gefunden wurde...
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
26.07.2011  
 



Jupp, war no simplemente para encontrar -

por lo tanto mache Yo siempre el Mühe solche Fuente con relevanten Suchbegriffen a versehen en einzusortieren.
 
26.07.2011  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

30.773 Views

Untitledvor 0 min.
E.T.22.11.2023
Georg21.01.2021
AndreasS23.12.2018
Klaus Ernst09.01.2018
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie