• Jueves 2 de Mayo de 2024, 19:20

Autor Tema:  Como Eliminar Directorio No Vacio.  (Leído 2244 veces)

Fabian13

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Como Eliminar Directorio No Vacio.
« en: Viernes 1 de Octubre de 2004, 18:09 »
0
Hola!

Tengo un pequeño problemilla: quiero borrar un directorio NO VACÍO, alguién sabe como hacerlo?

Muchas gracias.
Saludos.
Fabián.

carquemo

  • Miembro activo
  • **
  • Mensajes: 35
    • Ver Perfil
Re: Como Eliminar Directorio No Vacio.
« Respuesta #1 en: Viernes 8 de Octubre de 2004, 19:59 »
0
Borra primero todos los archivos, incluidos los de los subdirectorios, después lo borras, cuidado con los permisos de XP y 2000 en NTFS.
mira la ayuda de FindFirstFile
Tenemos dos orejas, dos ojos pero solo una boca, ¿será por algo?

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Como Eliminar Directorio No Vacio.
« Respuesta #2 en: Domingo 10 de Octubre de 2004, 04:04 »
0
Ve si esto te sirve... lo acabo de probar y va perfecto...

Código: Text
  1. void __fastcall TForm1::BorraCarpetas(AnsiString Dir)
  2. {
  3. SHFILEOPSTRUCT sfos;
  4. AnsiString log;
  5. char *lpMsgBuf;
  6. bool seacabo = false;
  7.  
  8.  
  9. ZeroMemory(&sfos, sizeof(sfos));
  10. sfos.hwnd = NULL;
  11. sfos.wFunc = FO_DELETE;
  12.  
  13. Dir.SetLength(Dir.Length()+1);
  14. Dir[Dir.Length()] = '\0';
  15. sfos.pFrom = Dir.c_str();
  16.  
  17.  
  18. sfos.fFlags = FOF_NOCONFIRMMKDIR | FOF_NOCONFIRMATION;
  19. if(SHFileOperation(&sfos) != 0)
  20. {
  21.  FormatMessage(
  22.  FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
  23.  NULL,
  24.  GetLastError(),
  25.  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
  26.  (LPTSTR) &lpMsgBuf,
  27.  0,NULL);
  28.  LocalFree( lpMsgBuf );
  29. }
  30. else
  31.   ShowMessage(log);
  32.  
  33. }
  34.  

Saludos!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]