Programación General > C++ Builder
Eliminar El Contenido De Un Directorio
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
[#] Página Siguiente
Ir a la versión completa