JCScan est un utilitaire de visualisation de données et de gestion d'espace de stockage. JCScan analyse le système de fichiers de votre support de stockage, collecte des informations et calcule des statistiques afin de créer des représentations graphiques de vos données numériques. JCScan appartient à une catégorie de programme utilitaire généralement désignée par les termes de gestionnaire d'espace disque (disk space manager) ou scanner de disque (disk scanner).
Programmé en Java, JCScan est d'emblée conçu comme multiplateforme. Utilisé en complément de votre gestionnaire de fichiers préféré, JCScan peut vous aider à gérer efficacement de grande quantité de données et des structures de répertoires complexes sur différents appareils et systèmes.
L'interface graphique de JCScan vous permet de 1. parcourir facilement le système de fichier analysé en inspectant les fichiers et dossiers qu'il contient et 2. prendre des décisions sur la base d'informations qui ne sont généralement pas directement accessibles en utilisant un simple gestionnaire de fichiers (taille des répertoires, profondeur, nombre de fichiers, distribution des fichiers par taille, etc.)
Le travail de programmation de JCScan m'a permis de réaliser plusieurs objectifs: 1. apprendre à utiliser l'API de Java SE et les bibliothèques Java destinées au développement d'interfaces graphiques (Swing, JavaFX) puis mettre en pratique ces compétences en créant un programme utile, 2. comprendre quelques algorithmes de base (tri, parcours récursif, etc.) et, par la pratique encore, les utiliser efficacement pour réaliser des calculs sur des données réelles et 3. présenter les compétences que j'ai acquises à de potentiels partenaires ou employeurs en montrant ma capacité à gérer un projet de développement logiciel de niveau intermédiaire en utilisant les technologies d'usage courant dans le métier.
Cette application a été programmée en utilisant Java 1.8 avec quelques composants Spring, obfusquée, compressée et optimisée au moyen de ProGuard (https://www.guardsquare.com/en/proguard).
Le fichier exécutable Windows a été crée avec Launch4J (http://launch4j.sourceforge.net).
L'icone de l'application est libre pour un usage non commercial et peut être trouvée à cette adresse.
Cette application est protégée par la licence Creative Commons suivante: CC BY-NC-ND 3.0 (Attribution-Noncommercial-No Derivative Works). Le texte complet de la licence est disponible à l'adresse suivante: https://creativecommons.org/licenses/by-nc-nd/3.0/legalcode
Vous pouvez utiliser et partager ce programme librement mais il doit demeurer attribué à Jérémie Cheney (https://jeremiecheney.net).
Démarrage rapide
Pour démarrer l'analyse des données contenues dans le support de stockage, choisir une adresse dans le système de fichiers. Cette adresse a la forme d'une chaîne de caractères composée de sous-chaînes séparées par un caractère spécial appelé un séparateur. Ce caractère séparateur dépend du système (une barre oblique avant pour Linux, une barre oblique arrière pour Windows) mais JCScan s'adapte à toute situation.
Exemples d'adresse: 1. sur Linux: /home/jeremie/Music, 2. sur Windows: C:\Users\jeremie\Music
Pour entrer l'adresse, vous pouvez soit: 1. utiliser la barre d'adresse située sous le menu de l'application ou 2. utiliser la fenêtre de sélection de fichier à laquelle vous pouvez accéder en utilisant le menu de l'application ou son bouton dédié près de la barre d'adresse.
CONSEIL: La plupart des gestionnaires de fichiers ont une barre d'adresse vous permettant de naviguer à travers les répertoires en utilisant le clavier. Dans un grand nombre de situations, vous pouvez habilement basculer de l'utilisation de la souris à l'utilisation du clavier afin de changer d'adresse. En particulier, lorsque vous avez besoin de prendre note d'une adresse ou d'utiliser une adresse comme entrée d'un autre programme, vous pouvez: 1. activer la barre d'adresse ctrl+l, 2. copier l'adresse ctrl+c, 3. basculer vers l'autre application alt+tab, 4. activer l'autre barre d'adresse ctrl+l, 5. coller l'adresse ctrl+v. Cela fonctionne avec la plupart des applications dont JCScan qui est destiné à être utilisé conjointement à d'autres programmes.
Pour démarrer l'analyse, appuyer sur entrée quand la barre d'adresse est activée ou cliquer sur le bouton scan.
Au démarrage de l'analyse, une fenêtre de dialogue s'ouvre et vous donne la possibilité d'annuler l'opération.
Scanner un support de stockage de grande capacité peut prendre du temps. Les principaux facteurs impactant la performance du programme sont: le chiffrement du système de fichiers, la technologie du matériel de stockage (les SSD sont beaucoup plus rapides), le mécanisme de cache des stats du système de fichiers, les accès multiples, etc. Scanner 50Go contenus dans 25K fichiers et répertoires ne devrait pas prendre plus de 10 secondes sur une machine moderne.
Usage
Décrire entièrement comment utiliser JCScan n'est pas vraiment nécessaire car ce programme est très simple d'utilisation. La conception de son interface graphique est conforme aux pratiques courantes: toutes les fonctionnalités du programme sont accessibles à partir du menu de l'application et les plus importantes disposent de raccourcis clavier ainsi que de boutons afin de faciliter l'utilisation du programme. Par ailleurs, de nouvelles fonctionnalités sont en cours de développement. Il est par conséquent trop tôt pour composer un manuel d'utilisation. Gardez à l'esprit que, comme souvent, il existe plusieurs façons de procéder. En définitive, le choix vous appartient.
Quelques informations utiles doivent cependant être portées à votre attention.
Intégrité des données
Aucune opération d'écriture n'est nécessaire pour l'analyse des données. JCScan n'écrit pas sur le support de stockage scanné.
Mémoire
Lorsque vous parcourez la structure d'un répertoire, le programme utilise une représentation interne de cette structure construite lors de l'analyse des données. Le programme n'analyse le répertoire qu'une seule fois et fonctionne ainsi plus rapidement et plus efficacement que s'il avait à analyser chaque répertoire auquel vous accédez. Il utilise cependant une quantité de mémoire importante pour conserver les informations collectées. La quantité de mémoire utilisée est déterminée par la complexité de la structuree du répertoire scanné (nombre d'éléments, profondeur des sous-répertoires, etc.)
Si nécessaire, vous pouvez modifier les paramètres de la machive virtuelle Java afin d'utiliser plus de mémoire. Initialisez: 1. la taille du tas (heap size) avec -Xms, 2. la taille maximale du tas avec -Xmx et 3. la taille de la pile de processus (thread stack) avec -Xss.
Exemple: java -Xms1024m -Xmx4096m -Xss1024m -jar /opt/jcscan.jar
Options et paramètres
JCscan enregistre ses paramètres ainsi que les options choisies par l'utilisateur dans un fichier texte contenu soit dans le répertoire d'installation du programme sous Windows soit dans le répertoire personnel de l'utilisateur sous Linux (~/.jcscan/jcscan-0.1.options).
Les changements d'options sont effectifs pour les analyses suivantes. Après avoir changer une option, scannez à nouveau l'adresse sélectionnée afin de mettre à jour les résultats ou scannez une nouvelle adresse.
Interface
La barre d'état située dans la partie basse de l'interface présente des informations utiles sur le répertoire scanné. Les informations affichées sont: 1. à gauche, le nombre total de répertoires, le nombre total de fichiers et la taille du répertoire courant et 2. sur la droite, la quantité de mémoire (RAM) utilisée par le programme ainsi que le temps utilisé pour scanner le répertoire.
Raccourcis clavier
Le résultat de l'analyse des données est présenté dans un ensemble de vues: vous pouvez les sélectionner en utilisant les onglets sur le côté gauche de la fenêtre. Utilisez les touches de fonction (F1, F2, etc.) pour passer facilement d'une vue à une autre.
Utilisez la touche de fonction F12 pour accéder au panneau des options.
Utilisez la combinaison de touches ctrl+l pour accéder à la barre d'adresse.
Utilisez la combinaison de touches alt+s pour sélectionner une autre adresse au moyen d'une boîte de sélection.
Utilisez la combinaison de touches alt+r pour mettre à jour les vues. Les changements opérés sur les fichiers et répertoires, au moyen d'un autre programme utilisé concurremment, ne déclenchent pas automatiquement une nouvelle analyse du support de données.
Pour la navigation, utilisez alt+gauche et alt+droite (ou retour arrière) pour avancer et reculer dans la liste des adresses déjà analysées et accéder à leurs vues. Utilisez alt+haut et alt+bas pour monter et descendre dans la structure des répertoires.
Attributs d'élément
Nous utilisons ici le terme élément pour désigner sans distinction un fichier ou un répertoire. JCScan calcule un certain nombre d'attributs d'élément qui ne sont pas a priori évidents et demandent donc à être documentés.
Le niveau d'un élément est le niveau du système de fichiers dans lequel l'élément se trouve localisé. Le niveau est calculé à partir de la racine du système de fichier (niveau zéro).
La profondeur d'un élément est le niveau relatif du sous-répertoire le plus profond qui puisse être atteint à partir de l'adresse de cet élément. Pour trouver le niveau du sous-répertoire le plus profond d'un répertoire donné, ajoutez le niveau de ce répertoire à la profondeur du sous-répertoire considéré.
La taille d'un élément est d'abord obtenue, du système de fichiers, en octets puis convertie en kilooctets, megaoctets, gigaoctets, etc. Il y a deux manières de calculer des quantités d'octets représentées par de grandes unités. On peut utiliser soit 1. des unités de base 2 (1Kio = 2^10 octets = 1024 octets) ou 2. des unités de base 10 (1Ko = 10^3 octets = 1000 octets). Vous pouvez sélectionner la base de numération souhaitée dans le panneau d'options. Par défaut, nous utilisons des unités de base 2 sous Windows et de base 10 sous Linux et MacOS (qui utilise des unités de base 10 depuis la version 10.6 Snow Leopard).
JCScan a recours à un petit ensemble de symboles pour représenter les types d'éléments listés: > représente un répertoire, . représente un fichier et X, un répertoire vide.
Camembert (F1)
Le camembert est un graphique simple montrant les fichiers et sous-répertoires contenus dans le répertoire scanné en les représentant par une tranche dont la surface est proportionnelle à la taille de l'élément. Le camembert est très pratique pour trouver facilement les fichiers et répertoires occupant de grands espaces de stockage. Sachez cependant que le camembert ne montre que les éléments les plus grands. Si vous souhaitez une liste complète et détaillée de tous les éléments, activez la vue de liste avec la touche F2.
Chaque tranche est étiquetée avec des informations sur l'élément: nom, taille dans un format lisible et taille relative. Placer votre pointeur au-dessus de l'étiquette fait apparaître une petite fenêtre contenant plus d'informations: date de dernière modification, type, taille dans un format lisible, taille relative, nombre d'octets, profondeur, nombre de fichiers, nombre de répertoires, nom, adresse, etc.
La géométrie du camembert est modifiable. Le diamètre du camembert peut être ajusté ainsi que la taille des rayons connectant les étiquettes aux tranches. Vous pourriez, par exemple, avoir besoin de changer la disposition du camembert lorsque des noms de fichiers longs n'apparaissent pas complètement dans l'espace d'affichage du camembert.
Liste (F2)
Lorsque l'on utilise cette vue, les raccourcis clavier deviennent très utiles. Vous pouvez parcourir les éléments de la liste très facilement en utilisant les touches de direction haut et bas. L'élément sélectionné est en surbrillance. Appuyer sur entrée lorsqu'un répertoire est sélectionné affiche la liste des éléments qu'il contient. Des fonctionnalités additionnelles sont disponibles dans un menu contextuel auquel vous pouvez accéder en effectuant un clic droit sur élément ou bien en utilisant son raccourci clavier (la touche menu dans la partie droite du clavier) lorsqu'un élément est sélectionné.
Lorsque la liste est affichée, ses éléments sont ordonnés par taille. Les attributs des éléments peuvent être utilisés pour réordonner la liste et faire ainsi apparaître plus clairement certaines particularités du répertoire. Par exemple, vous pouvez trouver quel sous-répertoire a la profondeur la plus importante.
La liste est présentée dans une table qui dispose d'un ensemble de champs contenant les titres des colonnes. Cliquez sur ces champs en haut des colonnes pour lister les éléments par ordre croissant ou décroissant pour un attribut donné.
Jérémie Cheney (https://jeremiecheney.net)