Y a-t-il un bon bijou pour obtenir des tailles de répertoire calculées de manière récursive? Dans UNIX, je peux utiliser du code>, mais je veux une bibliothèque qui absorbe la différence entre le système d'exploitation. P>
6 Réponses :
ressemble à SYS-FileSystem gère cela, mais vous devrez faire des mathématiques à Convertissez les blocs disponibles en octets (en multipliant par taille de bloc). p>
Cela peut être dû le long temps passé depuis cette réponse, mais le gemme mentionné détermine correctement la taille du bloc (ainsi que la taille des octets, cf. bytes_ {utilisé, total, libre} code> uniquement sur un système de fichiers ( = montage) niveau et ne semble pas fonctionner pour déterminer la taille d'un répertoire.
Consultez le fichier http://ruby-doc.org/core-1.9.3/file/stat.html#method-iforme P> p> Fichier :: STAT CODE> Classe (Notez qu'il ne calcule pas la taille du contenu du répertoire, il doit être effectué manuellement).
Je suppose que vous avez été bulled parce que cela renvoie la taille du répertoire, mais pas la taille combinée du contenu du répertoire.
Outils de support:
du.exe -l 1 %windir%
Ce n'est pas clair comment cela résout le problème. Vous devrez expliquer
Quelque chose comme ça peut-être pour vous?
Voici ma solution en utilisant http: // ruby- doc.org/core-2.2.0/file.html#method-c-size :
def directory_size(path) size=0 Dir.glob(File.join(path, '**', '*')) { |file| size+=File.size(file) } size end
Cela semble fonctionner:
Je pense que vous venez d'obtenir la longueur de la chaîne avec (&: taille) code> là. Ce que vous voulez, c'est
{| fichier | Fichier.size (fichier)} code>.
Ou utilisez somme code> au lieu de
injecter (: +) code> (testé sur Ruby 2.6.4)
Liée: Stackoverflow.com/Questtions/3632074/...
Connexes: Stackoverflow.com/Questtions/4508692/.../ a>