Publié le 08/12/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Afficher la taille d'un fichier avec une unite

L'exemple sur la lecture des propriétés d'un fichier montre comment trouver la taille d'un fichier. La fonction Length() retourne la taille du fichier en octet. La deuxième étape consiste à afficher une valeur que comprend facilement l’utilisateur.

Formater une taille de fichier

Comment formater cette valeur avec son unité de mesure (Octet, Ko, Mo, Go) ?
Pour trouver la bonne unité de mesure, à avoir octet, kilooctet ou mégaoctet, la valeur est divisée par 1024 jusqu'à ce que le reste est inférieure à 1024.
import java.text.DecimalFormat;
 
/**
 * @author fobec.com 2010
 */
public class FileSizeFormater {
 
    /**
     * Constante taille
     */
    private static final long[] CST_SIZE = {1024, 1024 * 1024, 1024 * 1024 * 1024};
    /**
     * Constante unité
     */
    private static final String[] CST_UNITS = {"Ko", "Mo", "Go"};
 
    /**
     * Afficher la taille du fichier formatée
     * @param long taille en octet
     * @return string
     */
    public static String format(final long value) {
        String result = null;
        long size;
        for (int i = 0; i < 3; i++) {
            size=value/CST_SIZE[i];
            if (size <= 1024) {
                result = mergeUnit(size, CST_UNITS[i]);
                break;
            }
        }
        return result;
    }
 
    /**
     * Arrondir et ajouter l'unité
     * @param size
     * @param unit
     * @return
     */
    public static String mergeUnit(long size, String unit) {
        return new DecimalFormat("#,##0.#").format(size) + " " + unit;
    }
 
    /**
     * Exemple
     * @param args
     */
    public static void main(final String[] args) {
            System.out.println(format(123456));
    }
}

Exemple de formtage de nombre

Prenons 2 tailles de fichiers que l'on passe par la class FileSizeFormater
120 ko pour FileSizeFormater.format(123456);
8 Mo pour FileSizeFormater.format(8805456);

Edit du 26/01/2015:
Une vérification sur l'article de Wikipedia nous apprend qu'il existe une confusion entre le kilooctet et le kibioctet. Traditionnellement le monde informatique estime qu'un kilo n'est pas une puissance de 10 mais 2 exposant 10 soit 1024. L'exemple pour afficher la taille d'un fichier comporte une erreur puisque l'unité est obtenue par une division de 1024 et non pas de 1000 octets.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - class
Mise a jour
08/12/2010
Visualisation
vu 3407 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par pgts09 dans tuto

Bonjour,
Felicitations pour ce tuto simple, et qui semble repondre exactement ce que je cherchais !
Malheureusement je n'arrive pas faire fonctionner, voici ce que donne mon essai : J'ai pourt...

Publié par space dans java

peut on avoir un meme code pour linux

Publié par Fobec dans tuto

Bonjour,

Sur Fobec.com, nous utilisons mod_expires.c pour envoyer automatiquement un code 304 au navigateur internet.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType im...

Publié par Fobec dans logiciel

Souhaitez-vous d'informations sur le logiciel foWhoisClient ou sur l'utilisation des Whois ?