Mon programme va dans un répertoire et recherche des fichiers pdf pour les analyser. Ce programme est toujours en cours d'exécution, donc je dois m'assurer de ne pas analyser à nouveau le même fichier.en boucle pour les fichiers PDF
J'ai utilisé une liste pour stocker les noms de fichiers et ensuite vérifier s'ils sont là.
Mon code ne fonctionne pas à cet égard, si quelqu'un peut jeter un oeil et voir ce qui est faux, il serait grandement apprécié.
FileInfo[] filePaths = di.GetFiles("*.pdf");
for (int i = 0; i < filePaths.Length; i++)
{
foreach (string fileName in usedFileNames)
{
if (fileName.Equals(filePaths[i].Name))
{
isInList = true;
}
else
{
isInList = false;
}
}
if (isInList == false)
{
PDFReaderChooser chooser = new PDFReaderChooser(filePaths[i].Name);
usedFileNames.Add(filePaths[i].Name);
}
}
Votre code ne fonctionne pas car vous devez insérer une instruction break après "isInList = true;". –
@ AS-CII: cela n'a aucun sens, car il teste 'isInList == false' plus tard; il y a effectivement rupture ... – Domenic
Oui mais à chaque fois que la boucle s'exécute, la variable isInList est mise à jour également si un nom de fichier est trouvé. Exemple: # 1 - Égal, isInList = true; # 2 - NotEqual, isInList = false. Dans ce cas, la dernière valeur que la variable suppose est fausse et donc le résultat est complètement faux. Si vous ne me faites pas confiance, testez le code vous-même :) Une alternative pourrait également être de supprimer l'instruction else. –