Ir al contenido


Foto

obtener tamaño de la papelera de reciclaje


  • Por favor identifícate para responder
3 respuestas en este tema

#1 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 mensajes

Escrito 30 diciembre 2021 - 10:13

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
  • 14.460 mensajes
  • LocationMéxico

Escrito 31 diciembre 2021 - 10:29

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 mensajes

Escrito 01 enero 2022 - 06:08

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
  • 4.111 mensajes
  • LocationMadrid - España

Escrito 03 enero 2022 - 04:20

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.