Nous allons commencer l'implémentation de l'application de traitement des images. Le principe est assez simple : Nous allons faire une méthode prenant en entrée un chemin d'accès et parcourant les dossiers de manière récursive (ou non) afin d'y trouver les photos.
Implémentation en Java
Je commence en Java, car c'est pour moi le langage que je connais le mieux et pour lequel je ne vais pas rencontrer de problème de syntaxe ou de connaissance d'API.
Code
package com.tuto.services; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; public class FilesService { private ArrayListlistImages = new ArrayList (); /** * * @param basePath : Chemin où se trouvent les images. * @param recursive : Doit-on parcourir les sous-dossiers. * */ public void listDir(String basePath, boolean recursive) { //On créé un object File à partir du chemin en paramètre. File baseFile = new File(basePath); //On test l'existance physique du répertoire. if (!baseFile.exists() || !baseFile.isDirectory()) { return; } //On récupère les fichiers et les sous-répertoires du dossier courant File[] listFiles = baseFile.listFiles(new FileFilter() { @Override public boolean accept(File f) { //On ne récupère que les fichiers jpg/JPG et les répertoires. return (f.isDirectory() || f.getName().toUpperCase().endsWith(".JPG")); } }); //On parcours désormais la liste des File for (File file : listFiles) { //Si le File est un répertoire, alors on appelle //récursivement la fonction avec le chemin du sous-répertoire. if (file.isDirectory()) { listDir(file.getAbsolutePath(), recursive); } else { //Sinon on ajoute l'image dans l'ArrayList listImages.add(file); } } } /** * Methode de test. * @param args : not used * */ public static void main(String[] args) { FilesService fs = new FilesService(); fs.listDir("C:\\Users\\Reno\\Pictures", true); } }
Cette méthode va donc nous retourner une liste de fichier de type Jpeg. La méthode de vérification du type est à améliorer pour plusieurs raisons :
- Un fichier avec une extension JPG/jpg n'est pas forcément une image
- Il y a des images non JPG/jpg donc toutes les images ne seront pas listées.
Pour commencer, cela suffira, nous affinerons pas la suite.
C'est à partir de cette liste que nous allons renommer / copier et transférer les images.
Aucun commentaire:
Enregistrer un commentaire