Programación General > C++ Builder

 Eliminar El Contenido De Un Directorio

(1/2) > >>

agatha:
¡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:
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 --- #include <shellapi.h> void sendToRecycleBin(char *Folder){  SHFILEOPSTRUCT erase;  ZeroMemory(&erase, sizeof(SHFILEOPSTRUCT));  erase.wFunc = FO_DELETE;  erase.pFrom = Folder;  erase.fFlags = FOF_ALLOWUNDO | FOF_NORECURSION | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT;  SHFileOperation(&erase);}  
 :smartass:  :comp:  :ph34r:

juanma:
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:

--- Cita de: "juanma" --- Espero que no se ofenda Eternal Ido| por responder a lo que ya ha respondido perfectamente.
--- Fin de la cita ---
No te preocupes, yo no me ofendo, aunque a cualquiera le puede parecer que es casi spam, especialmente viniendo de un usuario nuevo.

 :comp:

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

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa