Я знаю, что этот вопрос задавали много раз, но я не могу понять логи c за ним. У меня есть этот вложенный foreach l oop, структурированный следующим образом:
foreach (string currentFile in csvfiles)//loops through all csv files
{
string fileName = currentFile.Substring(Input_Path.Length);//works
try
{
foreach (string line in File.ReadAllLines(currentFile))
{
wafer = Wafer_value(line, wafer);
}
Console.WriteLine(wafer);
Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
}
catch (Exception e)
{
Console.WriteLine(e);
Directory.Move(currentFile, Path.Combine(Error_Path, fileName));
continue;
}
}
и метод для него:
public static string Wafer_value(string line, string wafer)
{
try
{
if (line.Contains("Wafer"))
{
wafer = line;
}
string[] separatingStrings = { "Wafer: ", "," };
string[] str = wafer.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
return str.First();
}
catch (Exception e)
{
Console.WriteLine(e);
throw new Exception();
}
}//End Function Wafer_value
Какой код должен быть, если есть исключение в методе он перейдет к основному методу, где переместит этот файл в папку с ошибкой. Если в методе нет исключения, он будет работать как обычно, затем переместите его в archiveDirectory, который является основной папкой. Вот где я застрял. Когда есть все файлы с исключениями, он перемещает его в папку ошибок. Однако, когда в миксе есть файл без исключения, он перемещает только один из файлов исключений в папку с ошибками, а затем перемещает все оставшиеся файлы, даже если они имеют исключения для основной папки.
Для этого внутренний foreachl oop перебирает все строки файла, а внешний foreachl oop перебирает все csv-файлы.
Что бы я сделал, чтобы уверены, что все файлы, которые выдают исключения go в папку ошибок?