Accéder au contenu principal Passer au contenu complémentaire

Trouver des fichiers dupliqués entre deux dossiers

Le scénario suivant décrit un Job qui fait une boucle sur deux dossiers, transforme les résultats de l'itération en flux de données afin d'obtenir une liste de noms de fichiers puis affiche les doublons dans la console Run.

Déposer et relier les composants

Procedure

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : deux tFileList, deux tIterateToFlow, deux tFileOutputDelimited, un tFileInputDelimited, un tUniqRow et un tLogRow.
  2. Reliez le premier tFileList au premier tIterateToFlow à l'aide d'un lien Row > Iterate et reliez le premier tIterateToFlow au premier tFileOutputDelimited à l'aide d'un lien Row > Main afin de former le premier sous-Job.
  3. Reliez le second tFileList au second tIterateToFlow à l'aide d'un lien Row > Iterate et reliez le second tIterateToFlow au second tFileOutputDelimited à l'aide d'un lien Row > Main afin de former le deuxième sous-Job.
  4. Reliez le tFileInputDelimited au tUniqRow à l'aide d'un lien Row > Main et reliez le tUniqRow au tLogRow à l'aide d'un lien Row > Duplicates afin de former le troisième sous-Job.
  5. Reliez les trois sous-Jobs à l'aide de liens Trigger > On Subjob Ok afin qu'ils soient déclenchés l'un après l'autre. Nommez ensuite les composants afin de mieux identifier leur rôle dans le Job.

Configurer les composants

Procedure

  1. Dans le champ Directory de la vue Basic settings du premier composant tFileList, saisissez le chemin vers le premier dossier dans lequel vous souhaitez lire le nom des fichiers, E:/DataFiles/DI/images dans ce scénario. Laissez les autres paramètres tels qu'ils sont.
  2. Double-cliquez sur le premier tIterateToFlow afin d'afficher sa vue Basic settings.
  3. Double-cliquez sur le bouton [...] situé à côté de Edit schema afin d'ouvrir la boîte de dialogue Schema. Définissez le schéma du fichier texte dans lequel le second composant doit écrire les noms des fichiers. Une fois fait, cliquez sur OK afin de fermer la boîte de dialogue et propager le schéma au composant suivant.
    Dans cet exemple, le schéma contient une seule colonne : Filename.
  4. Dans le champ Value de la table Mapping, appuyez sur Ctrl+Espace afin d'ouvrir la liste d'autocomplétion des variables. Sélectionnez la variable globale ((String)globalMap.get("tFileList_1_CURRENT_FILE")) afin de lire le nom de chaque fichier du dossier d'entrée. Ce dernier sera ensuite inséré dans un flux de données et passé au composant suivant.
  5. Dans le champ File Name de la vue Basic settings du premier tFileOutputDelimited, saisissez le chemin vers le fichier texte contenant les noms des fichiers provenant du flux entrant, D:/temp/tempdata.csv dans cet exemple. La configuration du premier sous-Job est ainsi terminée.
  6. Configurez le deuxième sous-Job de la même manière que le premier sous-Job. Cependant :
    • Dans le champ Directory de la vue Basic settings du second tFileList, saisissez le chemin vers l'autre dossier dans lequel vous souhaitez lire les noms des fichiers, E:/DataFiles/DQ/images dans ce scénario.

    • Dans la vue Basic settings du second tFileOutputDelimited, cochez la case Append afin que les noms des fichiers précédemment écrits dans le fichier texte ne soit pas écrasés.

  7. Dans le champ File name/Stream de la vue Basic settings du tFileInputDelimited, saisissez le chemin vers le fichier texte contenant la liste de noms de fichiers, D:/temp/tempdata.csv dans ce scénario. Définissez le schéma du fichier qui, dans le présent exemple, contient une seule colonne, Filename.
  8. Dans la vue Basic settings du tUniqRow, cochez la case Key attribute pour la colonne, Filename dans cet exemple.
  9. Dans la vue Basic settings du tLogRow, sélectionnez l'option Table (print values in cells of a table) pour un meilleur affichage des résultats d'exécution du Job.

Exécuter le Job

Procedure

  1. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Job.
  2. Cliquez sur Run ou appuyez sur F6 pour l'exécuter.
    Tous les fichiers dupliqués entre les deux dossiers sélectionnés sont affichés dans la console.

Results

Pour d'autres scénarios utilisant le tFileList, consultez tFileCopy.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.