私のプログラムは、ディレクトリに入り、それらを解析するためにpdfファイルを検索します。このプログラムは常に実行されているので、同じファイルをもう一度解析しないようにする必要があります。PDFファイルのルーピング
リストを使用してファイル名を保存し、ファイル名が存在するかどうかを確認しました。
誰かが見て、何が間違っているかを確認することができれば、私のコードはそれに関しては機能しません。
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);
}
}
"isInList = true;"の後ろにbreakステートメントを挿入する必要があるため、コードが機能しません。 –
@ AS-CII:彼は 'isInList == false'を後でテストするので意味がありません。それは事実上そこに壊れています... – Domenic
はい、ループが実行されるたびにisInList変数が更新され、fileNameが見つかると更新されます。例:#1 - 等しい、isInList =真; #2 - NotEqual、isInList = false。この場合、変数が前提とする最後の値はfalseであるため、結果は完全に間違っています。あなたが私を信頼しない場合は、コードを自分でテストしてください:) P.s.別の方法として、else文を削除することもできます。 –