foreach (FileInfo file in files)
            {
                this.textBox2.Text = "正在删除:" + file.FullName;
                 file.Delete();
               //有些文件不能删除,会出现异常,加上异常处理,会导致循环不能继续了,怎么解决?
            }

解决方案 »

  1.   

    即是说使用try 和 catch,会跳出循环了
      

  2.   

    最好在删除文件之前
    做个判断
     if (File.Exists(path))
           File.Delete(path);
      

  3.   


    foreach (FileInfo file in files)
                {
                    this.textBox2.Text = "正在删除:" + file.FullName;
                    try
                    {
                        file.Delete();
                    }
                    catch
                    { }
                }//某一次循环出现异常,下一次就不能继续
      

  4.   


    foreach (FileInfo file in files)
                {
                    this.textBox2.Text = "正在删除:" + file.FullName;
    try
    {
                     file.Delete();
    }
    catch{}
                   //有些文件不能删除,会出现异常,加上异常处理,会导致循环不能继续了,怎么解决?
                }
      

  5.   

    在finally中写一个continue试试,没用过。
      

  6.   

    我做了个实验            List<Button> list = new List<Button>();
                list.Add(b);
                list.Add(b1);
                foreach (Button btn in list)
                {
                    try{
                        throw new Exception("test");
                    }
                    catch
                    {                }
                }
    这样是没问题的,你的问题是出现在删除那或者try以外了,代码没贴全
      

  7.   


    用try怎么可能会跳出循环??
      

  8.   

    把出错的位置,TRY下就行了,它会接着执行下一个
      

  9.   

    在catch里边
    continue;
    或break;
      

  10.   

    写个单独的方法删除文件试下,在这个方法里处理掉异常后继续,
    private bool DeleteFile(FileInfo file)
    {
       try
    {
     file.Delete();
    return true;
     }
    catch
    {
      return false;
    }}foreach (FileInfo file in files)
                {
                    this.textBox2.Text = "正在删除:" + file.FullName;
                    if(!DeleteFile(file ))
                    this.textBox2.Text = "文件" + file.FullName+“删除失败!”;
                 }试下,我自己也没验证过,呵呵。
      

  11.   

    try catch 捕获异常处理如果你不做特殊处理 是不会跳出循环便利的 还会继续循环
    这里我想你的意思是指循环报错终止了循环便利 没有把后面能够正常删除的删除
    如果不想被客户知道 那么就写入log如果需要被知道你就可以在catch里对捕捉到的异常进行处理了
      

  12.   


    foreach (FileInfo file in files)
    {
        try
        {
            if (!file.Exists)
            {
                textBox2.Text += "File: " + file.FullName + "...Not Exists!"
                continue;
            }
            textBox2.Text += "Deleteing:" + file.FullName;
            file.Delete();
            textBox2.Text += "...OK!\r\n";
        }
        catch (System.Exception pe)
        {
            textBox2.Text += "...NG!\r\n";
            textBox2.Text += "Error Message: " + pe.Message + "\r\n";
        }
    }