foreach循环终于

Zak*_*aki 0 c# loops finally try-catch

我有一个foreach循环,尝试捕获,最后.它通过文件夹中的文件,最后将它们全部删除....但现在,如果我有两个文件,因为它删除所有(我需要删除所有因为应用程序功能)它不会通过第二个文件.有可能让foreach循环完成然后删除foreach方法中的所有文件这里是一个例子:

foreach (DirectoryInfo directory in directories)
{
    foreach (FileInfo file in directory.GetFiles("*.csv"))
    {
        try
        {
           //do something with file

        }

        catch (Exception e)
        {
            //catch exception
        }
        finally
        {
            if (!IsFileLocked(file))
            {
                string[] files = Directory.GetFiles(@"C:\Test");
                foreach (string filetoDelete in files)
                {
                    File.Delete(filetoDelete);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

希望它足够清楚.

Bra*_*vic 5

你的代码:

  1. 遍历给定的目录集并为每个目录循环:
  2. 获取该目录中的"*.csv"文件以及每个文件:
  3. 做什么然后:
  4. "C:\ Test"中删除文件.

你不应该删除刚刚处理的文件,或者至少删除你当前处理的目录中的文件,而不是"C:\ Test"中的文件吗?