sources communes de l'espace disque gaspillé sont des copies d'un même fichier dans le système. Pour éviter cela, vous pouvez créer un simple script en Java pour supprimer toutes sauf une copie de chaque fichier découvert . Ce script va passer par tous les fichiers dans un dossier donné et les inspecter individuellement afin de déterminer qui sont équivalentes. Cela pourrait être un moyen , par exemple, pour effacer un dossier de musique qui a de multiples entrées en double . Instructions
1
Ouvrez un éditeur de texte. N'importe quel éditeur de texte fera l'affaire, mais vous préférerez peut-être utiliser un environnement de développement intégré (IDE) comme Netbeans pour vous épargner quelques étapes .
2
Coller la structure de base suivante de la classe Java pour supprimer les fichiers en double : Photos
importation java.io.File ;
java.io.FileNotFoundException d'importation de
;
importation java.util.Scanner ;
classe DuplicateFileRemover public { Photos
CompareFiles publics statiques booléens ( fichier x , y fichier ) { }
public static void main ( string [] args) { } <
br>
}
le code ira dans les deux méthodes: . CompareFiles et principaux
3
Remplissez le code de la méthode CompareFiles :
publique CompareFiles booléenne statique ( fichier x , y fichier ) { try {
Scanner xs = new Scanner (x);
Scanner ys = new Scanner ( y);
résultat booléen = true;
while ( result) {
if ( xs.nextByte () = ys.nextByte ()) result = faux! ;
}
return result
;
} catch ( FileNotFoundException e) {
System.out.println ( e.getMessage ()); < br > retour
false; }
}
Cette méthode permettra de comparer les deux fichiers qui lui sont confiées , octet par octet, pour voir si elles contiennent des données en double. Dès qu'il trouve une différence , il rend compte que les fichiers ne sont pas les mêmes. Sinon, il rend compte qu'ils sont
4
Collez les données de la méthode principale: .
Public static void main ( String [] args ) {
fichier dir = new File ( ".") ;
fichier [ ] = fileList dir.listFiles ();
for (int x = 0; x < fileList.length ; x + +) {
for (int y = x +1 , y < fileList.length ; y + +) {
if ( CompareFiles ( fileList [x] , fileList [y] )) { < br >
fileList [x] delete () ; .
} }
} }
produit par tous les fichiers dans le répertoire et teste chaque uns contre les autres pour voir si elles sont les mêmes cours. Si deux fichiers sont identiques , le premier des deux est supprimé.