FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Delete all files and subdirectory in folder
Posts: 1195
Joined: Mon Oct 17, 2005 05:41 AM

Delete all files and subdirectory in folder

Posted: Mon Dec 01, 2014 10:20 AM

Hi,

Is the an easy way to delete all files and subdirectory's from a folder.
I have a program that copy files, and subdirectory's from a ZIP-file in a directory, but first I want to empty the directory.
I found someting like 'deletedir' in the forum, but I dont want to delete it, just empty it.

Thanks

Regards,

Marc



FWH32+xHarbour | FWH64+Harbour | BCC | DBF | ADO+MySQL | ADO+MariaDB | ADO+SQLite
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM

Re: Delete all files and subdirectory in folder

Posted: Mon Dec 01, 2014 01:28 PM
From Jesús Díez González, alias Eti, R.I.P:

Code (fw): Select all Collapse
      /*
      Hola !
      Seguro que hay algo ya hecho al respecto pero por si a alguien le sirve...
      Esta función sirve para borrar un directorio que contenga archivos u otros
      directorios, borra el contenido interior de cada directorio.

      Esta hecha con FWH 2.4

      Bueno, espero que os sirva
      Un saludo
      Jesús Díez González
      */
      //---------------------------------------
      // Autor: Jesús Díez González
      // 27/10/2003
      //#include "Directry.ch"
      //
      FUNCTION EliminaDir(cDir)
      LOCAL aDir := Directory(cDir+"\*.*","DR")
       RecorreDir(aDir,cDir)
      RETURN !lIsDir(cDir)

      STATIC FUNCTION RecorreDir(aDir, cDir,cAtt)
      Local nRemove
       aEval( aDir, {|aFile,c,a| c := aFile[F_NAME] ,;
                                 a := aFile[F_ATTR] ,;
                              IF( "D" $ a ,;  // Es un Directorio
                                 IF( "." $ c,;
                                     nil ,;  // . y .. No se eliminan :-)
                                     RecorreDir(;
      Directory(cDir+"\"+c+"\*.*","DR"),cDir+"\"+c, a )) ,;
                                 FErase(cDir+"\"+c) ) } )
      nRemove:= DirRemove(cDir)
      RETURN nRemove
Posts: 1195
Joined: Mon Oct 17, 2005 05:41 AM

Re: Delete all files and subdirectory in folder

Posted: Mon Dec 01, 2014 02:11 PM
Thank you, it's working very nice.

hmpaquito wrote:From Jesús Díez González, alias Eti, R.I.P:

Code (fw): Select all Collapse
      /*
      Hola !
      Seguro que hay algo ya hecho al respecto pero por si a alguien le sirve...
      Esta función sirve para borrar un directorio que contenga archivos u otros
      directorios, borra el contenido interior de cada directorio.

      Esta hecha con FWH 2.4

      Bueno, espero que os sirva
      Un saludo
      Jesús Díez González
      */
      //---------------------------------------
      // Autor: Jesús Díez González
      // 27/10/2003
      //#include "Directry.ch"
      //
      FUNCTION EliminaDir(cDir)
      LOCAL aDir := Directory(cDir+"\*.*","DR")
       RecorreDir(aDir,cDir)
      RETURN !lIsDir(cDir)

      STATIC FUNCTION RecorreDir(aDir, cDir,cAtt)
      Local nRemove
       aEval( aDir, {|aFile,c,a| c := aFile[F_NAME] ,;
                                 a := aFile[F_ATTR] ,;
                              IF( "D" $ a ,;  // Es un Directorio
                                 IF( "." $ c,;
                                     nil ,;  // . y .. No se eliminan :-)
                                     RecorreDir(;
      Directory(cDir+"\"+c+"\*.*","DR"),cDir+"\"+c, a )) ,;
                                 FErase(cDir+"\"+c) ) } )
      nRemove:= DirRemove(cDir)
      RETURN nRemove
Regards,

Marc



FWH32+xHarbour | FWH64+Harbour | BCC | DBF | ADO+MySQL | ADO+MariaDB | ADO+SQLite
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM

Re: Delete all files and subdirectory in folder

Posted: Mon Dec 01, 2014 02:57 PM
use por favor la funcion ya creada para tal efecto, es parte de ct tools.
FileDelete()
Deletes one or more files specified by a file mask and file attributes.
Syntax
FileDelete( <cFileMask>, [<nAttributes>] ) --> lDeleted

Arguments
<cFileMask>
This is a character string holding the drive, directory and/or file specification of the file(s) to delete. It may contain "wild card characters" (eg: "c:\xhb\data\*.cdx").
<nAttributes>
This is a numeric value specifying the file attributes of the files to query. Values of the following list are used for file attributes. To specifiy multiple attributes, pass the sum of the corresponding values: Values for file attributes Value Attribute
0 Normal
1 Read only
2 Hidden
4 System
8 Volume
16 Directory
32 Archived

Return
The return value is .T. (true) if at least one file was deleted, otherwise .F. (false).
Info
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)

Continue the discussion