• Jueves 28 de Marzo de 2024, 13:11

Autor Tema:  Eliminar El Contenido De Un Directorio  (Leído 2486 veces)

agatha

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Eliminar El Contenido De Un Directorio
« en: Viernes 29 de Julio de 2005, 10:39 »
0
¡Hola a tod@s!
     Me gustaria saber como puedo eliminar el contenido de un directorio, pero sin borrar éste. Lo que se me ha ocurrido es hacerlo mediante un bucle while y borrando fichero a fichero (con DeleteFile) ¿sabéis otra forma mejor?
    Muchas gracias       :comp:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Eliminar El Contenido De Un Directorio
« Respuesta #1 en: Viernes 29 de Julio de 2005, 12:21 »
0
Podes usar la funcion SHFileOperation, aca te dejo un ejemplo, en la MSDN podes encontrar todas las constantes. En este caso mandamos todo el directorio a la papelera de reciclaje sin que se entere el usuario.

El parametro seria de este formato c:\dir\dir2\*

Código: Text
  1.  
  2. #include <shellapi.h>
  3.  
  4. void sendToRecycleBin(char *Folder)
  5. {
  6.   SHFILEOPSTRUCT erase;
  7.   ZeroMemory(&erase, sizeof(SHFILEOPSTRUCT));
  8.   erase.wFunc = FO_DELETE;
  9.   erase.pFrom = Folder;
  10.   erase.fFlags = FOF_ALLOWUNDO | FOF_NORECURSION | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT;
  11.   SHFileOperation(&erase);
  12. }
  13.  
  14.  

 :smartass:  :comp:  :ph34r:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

juanma

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Eliminar El Contenido De Un Directorio
« Respuesta #2 en: Viernes 29 de Julio de 2005, 12:45 »
0
Espero que no se ofenda Eternal Ido| por responder a lo que ya ha respondido perfectamente.

Simplemente poner otro punto de vista, eviedentemente, en este ejemplo Windows pide la confimación.

{
  String cFd = InputBox("Borrar", "Eliminar ficheros de la Carpeta:", "C:\\Temp");
  if (cFd.Length()>2) {
    cFd += "\\*.*";
    char sfd[MAX_PATH];
    memset( sfd, 0, sizeof(sfd));
    lstrcpyn( sfd, cFd.c_str(), sizeof(sfd));

    SHFILEOPSTRUCT op;
    memset(&op, 0, sizeof(op));
    op.hwnd = Handle;
    op.wFunc =FO_DELETE;
    op.pFrom = sfd;
    op.fFlags= FOF_ALLOWUNDO;
    SHFileOperation( &op);
    }
}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Eliminar El Contenido De Un Directorio
« Respuesta #3 en: Viernes 29 de Julio de 2005, 13:03 »
0
Cita de: "juanma"
Espero que no se ofenda Eternal Ido| por responder a lo que ya ha respondido perfectamente.
No te preocupes, yo no me ofendo, aunque a cualquiera le puede parecer que es casi spam, especialmente viniendo de un usuario nuevo.

 :comp:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

agatha

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Eliminar El Contenido De Un Directorio
« Respuesta #4 en: Viernes 29 de Julio de 2005, 17:32 »
0
Muchas gracias a los dos por vuestra ayuda, y en especial a Eternal Idol, que siempre contesta mis preguntas con una rapidez asombrosa.  :P

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Eliminar El Contenido De Un Directorio
« Respuesta #5 en: Viernes 29 de Julio de 2005, 17:36 »
0
Cita de: "agatha"
Muchas gracias a los dos por vuestra ayuda, y en especial a Eternal Idol, que siempre contesta mis preguntas con una rapidez asombrosa.  :P
De nadas, para eso estamos  :smartass:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.