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. »


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  
 



Rekursives AddFiles por XProfans AddFiles-Función oder en AddFiles.Dll (  [...]  ) y todos gelisteten Archivos löschen y anschließend una AddDirs (de AddFiles.Dll) y todos Verzeichnisse entfernen. Usted musst siempre su ausgehen el se una Expediente/ Directorio no entfernen lässt.
 
24.07.2011  
 




Julian
Schmidt
Gracias IF,
mein Ver código fuente así funktioniert soweit, a darauf el el Ausgangsordner incluso no gelöscht se. Liegt lo vlt daran el el Explorer oder una otro Prozess esta blockiert. ¿Puede du el Ver código fuente testen?
delete_folder_completely("D:\Test")
Messagebox("Ordner gelöscht","INFO",64)

Proc delete_folder_completely

    Parámetros Pfad$
    var addfiles.dll&=ImportDLL("addfiles.dll","")
    var h&=Crear("List", 0)
    Chdir Pfad$
    AddFiles("*.*",h&,1)
    MoveListToHandle(h&)

    whileloop GetCount(h&)

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

    Endwhile

    clearlist h&
    Chdir Pfad$
    AddDirs("*.*",h&,1)

    whileloop GetCount(h&),1,-1

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

    Endwhile

    destroywindow(h&)
    RmDir Pfad$
    FreeDLL addfiles.dll&

ENDPROC


13 kB
Hochgeladen:24.07.2011
Ladeanzahl86
Descargar
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
24.07.2011  
 



XProfan 11.2.1.8a.63 Praekompiler [XPSE]
Copyright (C) 1998-2010 XProfan.Com, built DE.

Expediente: c:\dev\test.xprf
Warnung: Unbekannte Escapesequenz en Stringkonstante: "D:\Test"

[C]ompile [I]nterpr [L]ink [R]unPrc Run[E]xe [S]ource [H]ilfe

XPSE:>
 
24.07.2011  
 




Julian
Schmidt
IF (24.07.11)
Warnung: Unbekannte Escapesequenz en Stringkonstante: "D:\Test"


Und qué se el genau bedeuten?
Ist etwa una Fehler en el Code?
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
24.07.2011  
 




Jörg
Sellmeyer
Ist sólo el Meckerei de XPSE, daß Usted einfache Backslash en lugar de doppelte verwendest.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.07.2011  
 




Julian
Schmidt
Na entonces, bin Yo beruhigt.
Dennoch una Problema.
¿Por qué kommt en el Ver código fuente una Fehlermeldung?


delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))
Messagebox("Ordner gelöscht","INFO",64)

Proc delete_folder_completely

    Parámetros Pfad$
    var addfiles.dll&=ImportDLL("addfiles.dll","")
    var h&=Crear("List", 0)
    Chdir Pfad$
    AddFiles("*.*",h&,1)
    MoveListToHandle(h&)

    whileloop GetCount(h&)

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

    Endwhile

    clearlist h&
    Chdir Pfad$
    AddDirs("*.*",h&,1)

    whileloop GetCount(h&),1,-1

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

    Endwhile

    destroywindow(h&)
    RmDir Pfad$
    FreeDLL addfiles.dll&

ENDPROC


Yo habe sólo el erste Línea geändert!
"delete_folder_completely("D:\Test")"
a
"delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))"


Nachdem Yo el Línea otra vez abändere funktioniert todos otra vez como zuvor.
Alguien una Concepto?

[OFFTOPIC]Descargar
externer Descargar
[/OFFTOPIC]


Apéndice: Der Ausgangsordner se desafortunadamente immernoch no gelöscht, incluso si yo el Computer neustarte!

211 kB
Hochgeladen:24.07.2011
Ladeanzahl113
Descargar
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
24.07.2011  
 



@Jörg: No bastante porque lo hieß auch "Checkst Usted sólo primero selber bevor Usted otro por lo tanto bittest z.B. ihre Festplatte a löschen".
 
24.07.2011  
 



@Julian: Usted debe necesariamente una chdir-Función herstellen el zurückliefert si el Verzeichniswechsel erfolgreich war (z.B. por getDir$("@")) bevor Usted Dateinamen sammelst de Archivos el entonces gelöscht voluntad (debería). ^ ^
 
25.07.2011  
 




Julian
Schmidt
So qué en esta Richtung?
delete_folder_completely("C:\\Test")
Messagebox("Ordner gelöscht","INFO",64)

Proc delete_folder_completely

    Parámetros Pfad$
    var addfiles.dll&=ImportDLL("addfiles.dll","")
    var h&=Crear("List", 0)
    Chdir Pfad$
    caso @GetDir$("@")=Pfad$ : AddFiles("*.*",h&,1)
    MoveListToHandle(h&)

    whileloop GetCount(h&)

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

    Endwhile

    clearlist h&
    Chdir Pfad$
    caso @GetDir$("@")=Pfad$ :  AddDirs("*.*",h&,1)

    whileloop GetCount(h&),1,-1

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

    Endwhile

    destroywindow(h&)
    caso @GetDir$("@")=Pfad$ : RmDir Pfad$
    FreeDLL addfiles.dll&

ENDPROC


Julian57 (24.07.11)
Dennoch una Problema.
¿Por qué kommt en el Ver código fuente una Fehlermeldung?


delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))
Messagebox("Ordner gelöscht","INFO",64)

Proc delete_folder_completely

    Parámetros Pfad$
    var addfiles.dll&=ImportDLL("addfiles.dll","")
    var h&=Crear("List", 0)
    Chdir Pfad$
    AddFiles("*.*",h&,1)
    MoveListToHandle(h&)

    whileloop GetCount(h&)

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

    Endwhile

    clearlist h&
    Chdir Pfad$
    AddDirs("*.*",h&,1)

    whileloop GetCount(h&),1,-1

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

    Endwhile

    destroywindow(h&)
    RmDir Pfad$
    FreeDLL addfiles.dll&

ENDPROC


Yo habe sólo el erste Línea geändert!
"delete_folder_completely("D:\Test")"
a
"delete_folder_completely(ChooseDir$("Verzeichnis wählen:"))"


Nachdem Yo el Línea otra vez abändere funktioniert todos otra vez como zuvor.
Alguien una Concepto?

[OFFTOPIC]Descargar
externer Descargar
[/OFFTOPIC]


Apéndice: Der Ausgangsordner se desafortunadamente immernoch no gelöscht (vollständig geleert, pero no mehr), incluso si yo el Computer Neustarte!
 
˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.07.2011  
 




ByteAttack
Schon veces con deltree probiert?
 
Website:  [...] 
Facebook:  [...] 
25.07.2011  
 




Thomas
Freier
Also, wenn's el Papierkorb ser darf, y no absolut restlos ser se, es en Borrar auch no Fall :
'de el MMJ-Quellcodesammlung (Dietmar Horn)
'Expediente en el Papierkorb mover
'Lauffähig de Profano-Versión 5.0
' PRFellow-Presentación
' Autor: Thomas Hölzer
' Un Expediente en el Papierkorb mover (de Profano 5.0-32)
' Parámetro:
' (1): Voller Pfadname
' (2): 1, si Bestätigungs-Diálogo adecuado voluntad se
' Un Rückgabe <> 0 markiert una Fehler oder User-Abbruch
Def SHFileOperation(1) !"SHELL32","SHFileOperationA"
Declarar SHFO#
Declarar file#

Proc MoveFileToBin

    Parámetros file$,confirm%
    Declarar flags%, result&
    FindFirst$(file$)
    Case %IOResult: Volver -1
    Let flags%=64
    Case confirm%: flags%=80
    Dim SHFO#,30
    Dim file#,Len(file$)+2
    String file#,0=file$
    Largo SHFO#,0=GetActiveWindow()
    Largo SHFO#,4=3
    Largo SHFO#,8=file#
    Largo SHFO#,12=0
    Word SHFO#,16=flags%
    Largo SHFO#,18=0
    Largo SHFO#,22=0
    Largo SHFO#,26=0
    result&=SHFileOperation(SHFO#)
    Disponer file#
    Disponer SHFO#
    Volver result&

ENDPROC

' Ejemplo
Cls
imprimir MoveFileToBin("C:\\TEST\\Test.txt",1)' sólo veces así
imprimir MoveFileToBin("C:\\TEST",1)
waitinput
 
Gruß Thomas
Windows XP SP2, XProfan X2
25.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.805 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