Borrado directorios

Post Reply
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Borrado directorios

Post by jmua »

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
José Martin Uriarte
jmuarg@yahoo.es
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

José,

Esta debería servirte:

DLL32 FUNCTION RemoveDir(cPathName AS LPSTR) AS BOOL PASCAL ;
FROM "RemoveDirectoryA" LIB "Kernel32.Dll"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Post by jmua »

Gracias Antonio probare y veremos si funciona
José Martin Uriarte
jmuarg@yahoo.es
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Post by jmua »

Antonio Linares wrote:José,

Esta debería servirte:

DLL32 FUNCTION RemoveDir(cPathName AS LPSTR) AS BOOL PASCAL ;
FROM "RemoveDirectoryA" LIB "Kernel32.Dll"
Antonio he probado y solo funciona si el directorio esta vacio.
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
User avatar
cuatecatl82
Posts: 614
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Post by cuatecatl82 »

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
User avatar
jmua
Posts: 96
Joined: Tue Oct 11, 2005 5:56 am
Contact:

Post by jmua »

Gracias lo probare y veremos que hace
José Martin Uriarte
jmuarg@yahoo.es
User avatar
AIDA
Posts: 782
Joined: Fri Jan 12, 2007 8:35 pm

Re: Borrado directorios

Post by AIDA »

Muy buena tu Funcion para borrar me fue de mucha utilidad :mrgreen:

GRACIAS!!!!! :D

Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Post Reply