Mein Programm geht in ein Verzeichnis und sucht nach PDF-Dateien, um sie zu analysieren. Dieses Programm läuft immer, deshalb muss ich sicherstellen, dass die gleiche Datei nicht erneut analysiert wird.Schleife für PDF-Dateien
Ich habe eine Liste verwendet, um die Dateinamen zu speichern und dann zu überprüfen, ob sie da sind.
Mein Code funktioniert nicht in Bezug auf das, wenn jemand einen Blick darauf werfen kann, was falsch ist, würde es sehr geschätzt werden.
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);
}
}
Ihr Code funktioniert nicht, da Sie nach "isInList = true;" eine break-Anweisung einfügen müssen. –
@ AS-CII: das macht keinen Sinn, da er 'isInList == false' später testet; es bricht effektiv dort ... – Domenic
Ja, aber jedes Mal, wenn die Schleife ausgeführt wird, aktualisiert die isInList Variable auch, wenn ein fileName gefunden wird. Beispiel: # 1 - Gleich, isInList = true; # 2 - NotEqual, isInList = false. In diesem Fall ist der letzte Wert, den die Variable annimmt, falsch und daher ist das Ergebnis völlig falsch. Wenn Sie mir nicht vertrauen, testen Sie den Code selbst :) Ps. Eine Alternative könnte auch sein, die Else-Anweisung zu entfernen. –