Buenos dias foro.
Alguien tiene hecha o puede decirme donde encontrar una funcion para eliminar un directorio completo, incluidos ficheros y subdirectorios dentro de el.
De antemano muchas gracias
Borrado directorios
Borrado directorios
José Martin Uriarte
jmuarg@yahoo.es
jmuarg@yahoo.es
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio he probado y solo funciona si el directorio esta vacio.Antonio Linares wrote:José,
Esta debería servirte:
DLL32 FUNCTION RemoveDir(cPathName AS LPSTR) AS BOOL PASCAL ;
FROM "RemoveDirectoryA" LIB "Kernel32.Dll"
si tiene algun fichero no funciona.
Tendre que hacer una funcion que compruebe lo que tiene y borrar primero el contenido.
No la tendra hecha alguien por hay?
Gracias
José Martin Uriarte
jmuarg@yahoo.es
jmuarg@yahoo.es
- cuatecatl82
- Posts: 614
- Joined: Wed Mar 14, 2007 6:49 pm
- Location: San Cristobal de las Casas, Chiapas México
- Contact:
Saludos jmua:
Te paso una función que borra los archivos mediante mascara (*.*, *.CDX, etc), haz esto antes de borrar tu directorio, en este ejemplo borro los archivos .CDX de la carpeta COBRANZA de mi Sistema:
OJO (Verás que tengo implementado un meter para ver el progreso de borrado según el número de Archivos que existan en el directorio, si gustas lo puedes omitir)
---------------------------------------------------------------------
FUNCTION Borrar() //Esto lo Puedes Omitir, es solo pa darle Look
LOCAL oMeter1, oDlg
bDialogTask := { || BorraCDX(oMeter1) }
DEFINE DIALOG oDlg RESOURCE "OPTIMIZA" Title "Borrando Archivos"
oMeter1 = TProgress():Redefine( 200, oDlg )
ACTIVATE DIALOG oDlg CENTERED ON PAINT EVAL(bDialogTask)
Return nil
--------------------------------------------------
STATIC FUNCTION BorraCDX(oMeter) //Esto es lo que borra los Archivos
LOCAL aIndexFiles := {}
LOCAL aFil := {}
LOCAL nI := 0
//--> En el Directorio de Cobranza
aFil:= DIRECTORY( ( ".\COBRANZA\*.CDX" ) )
AEVAL( aFil, { | uFile | AADD( aIndexFiles, uFile ) } )
oMeter:SetRange(0, LEN(aIndexFiles))
FOR nI:= 1 TO LEN(aIndexFiles)
SYSREFRESH()
FERASE(".\COBRANZA\"+aIndexFiles[nI][1])
oMeter:SETPOS(nI)
NEXT nI
RETURN nil
Una vez eliminado todos los archivos de la carpeta, ya puedes proceder a borrarla con cualquier función que tengas.
Espero te sirva.. Saludos desde Chiapas México
Muy pronto mi portal electronico: www.sisa.unlugar.com
Te paso una función que borra los archivos mediante mascara (*.*, *.CDX, etc), haz esto antes de borrar tu directorio, en este ejemplo borro los archivos .CDX de la carpeta COBRANZA de mi Sistema:
OJO (Verás que tengo implementado un meter para ver el progreso de borrado según el número de Archivos que existan en el directorio, si gustas lo puedes omitir)
---------------------------------------------------------------------
FUNCTION Borrar() //Esto lo Puedes Omitir, es solo pa darle Look
LOCAL oMeter1, oDlg
bDialogTask := { || BorraCDX(oMeter1) }
DEFINE DIALOG oDlg RESOURCE "OPTIMIZA" Title "Borrando Archivos"
oMeter1 = TProgress():Redefine( 200, oDlg )
ACTIVATE DIALOG oDlg CENTERED ON PAINT EVAL(bDialogTask)
Return nil
--------------------------------------------------
STATIC FUNCTION BorraCDX(oMeter) //Esto es lo que borra los Archivos
LOCAL aIndexFiles := {}
LOCAL aFil := {}
LOCAL nI := 0
//--> En el Directorio de Cobranza
aFil:= DIRECTORY( ( ".\COBRANZA\*.CDX" ) )
AEVAL( aFil, { | uFile | AADD( aIndexFiles, uFile ) } )
oMeter:SetRange(0, LEN(aIndexFiles))
FOR nI:= 1 TO LEN(aIndexFiles)
SYSREFRESH()
FERASE(".\COBRANZA\"+aIndexFiles[nI][1])
oMeter:SETPOS(nI)
NEXT nI
RETURN nil
Una vez eliminado todos los archivos de la carpeta, ya puedes proceder a borrarla con cualquier función que tengas.
Espero te sirva.. Saludos desde Chiapas México
Muy pronto mi portal electronico: www.sisa.unlugar.com
Re: Borrado directorios
Muy buena tu Funcion para borrar me fue de mucha utilidad
GRACIAS!!!!!
Saluditos
GRACIAS!!!!!
Saluditos
Que es mejor que programar? creo que nada
Atropellada pero aqui ando
I love Fivewin
séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Atropellada pero aqui ando
I love Fivewin
séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ