Jump to content


Photo

obtener tamaño de la papelera de reciclaje


  • Please log in to reply
3 replies to this topic

#1 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 30 December 2021 - 10:13 PM

buenas noches amigos, antes les deseo que pasen un feliz año nuevo :)  acto seguido necesito su ayuda.

mi consulta es como puedo obtener el tamaño de la papelera de recyclaje en windows, de preferencia en bytes.

si me pueden dar la mano, saludos amigos

 

 


  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 31 December 2021 - 10:29 AM

Hola monchito_elroro, un gusto verte por aquí, felices fiestas (y)

 

 

A ver si te sirve esto:

 

http://delphiaccess....tamaño +carpeta

 

Saludos


  • 0

#3 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 01 January 2022 - 06:08 AM

hola amigo muchas gracias por responder, lo que pasa es que no logro encontrar la ruta exacta de la papelera :


  • 0

#4 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 03 January 2022 - 04:20 AM

La papelera de reciclaje se encuentra en el Path '\$Recycle.Bin'. Lo siguiente es preparar una función que sume los tamaños de los archivos. Dado que esos tamaños pueden exceder el límite de un entero de 32 bits, lo haremos para int64 con la API de windows.


delphi
  1. function GetFolderSize(Folder: String): int64;
  2. var
  3. wfd: WIN32_FIND_DATA;
  4. hFind: THANDLE;
  5. begin
  6. Result:= 0;
  7. hFind:= FindFirstFile(PChar(Folder + '\*.*'), wfd);
  8. if hFind <> INVALID_HANDLE_VALUE then
  9. begin
  10. repeat
  11. if(String(wfd.cFileName) <> '.') and (String(wfd.cFileName) <> '..') then
  12. begin
  13. if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <> 0 then
  14. Result:= Result + GetFolderSize(Folder + '\' + wfd.cFileName)
  15. else
  16. Result:= Result + ((wfd.nFileSizeHigh shl 32) or wfd.nFileSizeLow);
  17. end;
  18. until not FindNextFile(hFind, wfd);
  19. windows.FindClose(hFind);
  20. end;
  21. end;

El uso para la papelera de reciclaje es así:


delphi
  1. Label1.Caption:= IntToStr(GetFolderSize('\$Recycle.Bin'));

Hay que tener en cuenta que la papelera que va a usar es la del usuario actual. Si existen mas usuarios, sus papeleras no serán evaluadas.

 

 

Saludos.


  • 1




IP.Board spam blocked by CleanTalk.