web-dev-qa-db-fra.com

La page Propriétés Nautilus peut-elle afficher la taille en octets pour les sélections multiples et pour les répertoires?

Dans Nautilus, les propriétés d'un élément nique montrent la taille comme suit:
une valeur arrondie à une décimale ... nn.n Ko, Mo, Go ...
suivi d'un nombre exact d'octets

Pour les éléments non uniques, Nautilus affiche uniquement une taille arrondie.

(Single item)   Size:  1.4 GB (1501773824 bytes)

(Multi items)   Size:  5 items, totalling 1.4 GB
(directory)     Size:  5 items, totalling 1.4 GB

Existe-t-il un moyen de faire afficher à Nautilus le nombre exact d'octets dans les situations toutes?

J'aime la façon dont la boîte de dialogue Propriétés me permet de copier ces données de taille, mais je veux généralement travailler avec la taille exacte (pas une approximation).

Konqueror affiche la taille réelle totale, mais il ne me permet pas de copier la valeur dans le presse-papiers.

NB: Le soluton zerwas fourni (ci-dessous) fonctionne bien, sauf qu'il atteint un nombre entier maximum de 4,294967,296 octets (4 Go) ...
Donc, pour toute personne lisant ceci et intéressée à utiliser cette méthode, voici le code modifié, qui correspond à un entier "long long" ...
La première ligne (/ * nouveau * /) est au numéro de ligne 2337

/* new */   long long ll_total_size = total_size;
/* MOD */   size_str = g_format_size_for_display (ll_total_size);
/* MOD */   text = g_strdup_printf (ngettext("%'d item, with size %s (%lld bytes",
/* MOD */                    "%'d items, totalling %s (%lld bytes)",
/* ASIS */                   total_count),
/* MOD */               total_count, size_str, ll_total_size);

Nouvelles informations affichées:

(Single item)   Size:  1.4 GB (1501773824 bytes)

(Multi items)   Size:  5 items, totalling 1.4 GB (1502027641 bytes)
(directory)     Size:  5 items, totalling 1.4 GB (1502027641 bytes)
--
(directory)     Size:  188,120 items, totalling 766.8 GB (823295045767 bytes)
5
Peter.O

La valeur affichée est appelée par la fonction g_format_size_for_display de GLib. Vous devez modifier le code source de nautilus pour changer ce comportement en ajoutant simplement un% i à la sortie:

Étape 1 : Téléchargez la source, installez les dépendances et ouvrez le fichier à modifier

mkdir -p .p/nautilus && cd .p/nautilus
Sudo apt-get build-dep nautilus
apt-get source nautilus && cd nautilus*
gedit src/file-manager/fm-properties-window.c

Étape 2 : modifiez le code

Allez maintenant à la ligne 2338 (dans Nautilus 2.30) et remplacez with size %s Par with size %s (%i Bytes). Faites de même pour totalling %s. Changez-le en totalling %s (%i Bytes) Il devrait maintenant ressembler à ceci:

    text = g_strdup_printf (ngettext("%'d item, with size %s (%i Bytes)",
                     "%'d items, totalling %s (%i Bytes)",

Étape 3 : Compiler

Maintenant, vous pouvez simplement compiler Nautilus comme toutes les autres applications

./configure --prefix=/usr
make
Sudo make install
nautilus -q

Notez que Nautilus sera écrasé chaque fois qu'il y aura une mise à jour via la gestion des packages. Cela signifie que vous devez le construire et l'installer à nouveau manuellement.

Il existe également une autre façon d'utiliser un script Nautilus, mais cela ajouterait une autre entrée dans le menu contextuel au lieu d'avoir la valeur dans la fenêtre des propriétés.

7
zerwas