IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Booléen - Taille d'un fichier


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Booléen - Taille d'un fichier
    Bonjour,

    Je suis récemment formé sur Java et j'essaie de m'exercer. Mais je rencontre des difficultés, pouvez-vous m'aider ?

    Dans le répertoire "DOSSIER", j'ai un ou plusieurs "FICHIER1.csv", "FICHIER2.csv", "FICHIER3.csv", etc...
    Dans mon programme, j'ai une variable de type Booléen "VALIDE" et une variable de type String "TAILLE"

    J'aimerais que mon programme vérifie la "TAILLE" de chaque fichier toutes les minutes.
    Si la taille du "FICHIERX.CSV" n'a pas changé, alors la variable "VALIDE" est vrai.
    Si la taille du "FICHIERX.CSV" a changé, alors la variable "VALIDE" est fausse.

    J'avais pensé à faire une boucle, mais je ne sais pas y ajouter la notion de temps. Je pense aussi utilisé la méthode FILE mais je ne sais pas si c'est correct : getTotalSpace()

    Juste pour information, derrière j'ai un logiciel qui vérifiera la variable "VALIDE" de chaque fichiers, et si cette variable est VRAI, alors le fichier sera transporté dans un autre dossier.

    Par avance, je vous remercie pour votre aide précieuse

    Sébastien

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 176
    Points
    176
    Par défaut
    Hello,

    Pour avoir la taille d'un fichier, tu peux le faire avec la classe File et la méthode length().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     long size = new File("myfile.csv").length();
    Et tu auras la taille en Bytes.

    Ensuite si tu as ton dossier tu peux faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     final File folder = new File("/home/you/Desktop");
     
    if(folder.isDirectory()){
    for (final File fileEntry : folder.listFiles()) {
            System.out.println(fileEntry.fileName() + " " + fileEntry.length());
     
        }
    }
    Et tu auras la liste des fichiers et leur taille.

    Jérémy

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Je te remercie pour ton aide.

    Je vais tester ça

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    A partir de Java 1.7 il est préférable lorsque c'est possible de passer par la nouvelle API java.nio.file.
    => Path remplace File et la classe utilitaire Files fournit tout le nécessaire pour récupérer les infos, en l’occurrence ici Files.size() pour récupérer la taille d'un fichier.


    Et tu as même les WatchServices qui permettent de surveiller les modifications d'un répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    		// On crée un Path représentant le répertoire de base :
    		final Path directory = Paths.get("chemin vers le répertoire");
     
    		// On crée un WatchService, qui sera chargé de surveiller le répertoire :
    		final WatchService watcher = directory.getFileSystem().newWatchService();
    		// On enregistre le répertoire dans le WatchService,
    		// Ici en surveillant la création/suppression/modification de fichier
    		final WatchKey serviceKey = directory.register(watcher, StandardWatchEventKinds.ENTRY_CREATE,
    				StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
     
    		// Boucle infini
    		// (il faudra prévoir une condition de sortie)
    		while (true) {
    			// On attend qu'un évènement survient, ici pendant au plus 5 minutes
    			final WatchKey key = watcher.poll(5, TimeUnit.MINUTES);
    			if (key == null) {
    				// Il n'y a pas eu d'évènement pendant 5 minutes
    				// => Voir pour une condition d'arrêt
    				break;
    			} else {
    				// On boucle sur les évènements
    				for (WatchEvent<?> event : key.pollEvents()) {
    					if (event.kind() == StandardWatchEventKinds.OVERFLOW) {
    						// évènement à ignorer
    					} else if (event.kind() == StandardWatchEventKinds.ENTRY_DELETE) {
    						System.out.println("Fichier supprimé : " + event.context());
    					} else if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE
    							|| event.kind() == StandardWatchEventKinds.ENTRY_MODIFY)
    						System.out.println("Fichier créé ou modifié : " + event.context());
    					// On récupère le chemin complet vers le fichier
    					Path relatedFile = directory.resolve((Path) event.context());
    					System.out.println(" => Taille : " + Files.size(relatedFile));
    				}
    			}
    			// On réinitialise la clef (important pour obtenir les
    			if (key.reset() == false) {
    				break;
    			}
    		}
    		// On met fin au suivi
    		serviceKey.cancel();

Discussions similaires

  1. [JSP] Connaitre la taille d'un fichier
    Par dst dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/06/2004, 17h22
  2. Réponses: 5
    Dernier message: 15/04/2004, 13h24
  3. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20
  4. fonction réduisant la taille d'un fichier
    Par Harry_polin dans le forum C
    Réponses: 22
    Dernier message: 27/11/2003, 13h56
  5. [VB6] [Réseau] Récupérer la taille d'un fichier avec inet
    Par pcpunch dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 20/02/2003, 21h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo