if (dr.HasRows == false || excelData == "")
                                    {                                        //excelRow = excelRow - 1;                                        Microsoft.Office.Interop.Excel.Application app1 = new Microsoft.Office.Interop.Excel.Application();
                                        Microsoft.Office.Interop.Excel.Workbook openWorkbook1 = app1.Application.Workbooks.Add("" + RDfilename + "");                                        app1.Visible = false;                                        Worksheet ws1 = (Microsoft.Office.Interop.Excel.Worksheet)openWorkbook1.Worksheets[1];
                                        Range range = (Range)ws1.Rows[excelRow + 1, Type.Missing];                                        range.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlShiftUp);                                        openWorkbook1.SaveAs(TemRDfilename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                                        app1.Quit();                                        //结束excel进程
                                        foreach (System.Diagnostics.Process thisproc in System.Diagnostics.Process.GetProcesses())
                                        {
                                            if (thisproc.ProcessName.ToString() == "EXCEL")
                                            {
                                                thisproc.Kill();
                                            }
                                        }
                                        myConnExcel.Close();                                        System.IO.File.Delete(RDfilename);
                                        File.Copy(TemRDfilename, RDfilename, false);
                                        System.IO.File.Delete(TemRDfilename);                                        excelRow = excelRow - 1;
                                        myExcelCount = myExcelCount - 1;
                                        errexcelRow = errexcelRow + 1;
                                    }
                                    else
                                    {
                                        
                                        //excelRow = excelRow - 1;                                        Microsoft.Office.Interop.Excel.Application app2 = new Microsoft.Office.Interop.Excel.Application();
                                        Microsoft.Office.Interop.Excel.Workbook openWorkbook2 = app2.Application.Workbooks.Add("" + ERRfilename + "");                                        app2.Visible = false;                                        Worksheet ws2 = (Microsoft.Office.Interop.Excel.Worksheet)openWorkbook2.Worksheets[1];
                                        Range range = (Range)ws2.Rows[errexcelRow + 1, Type.Missing];
                                        range.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlShiftUp);                                        openWorkbook2.SaveAs(TemERRfilename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                                        app2.Quit();                                        //结束excel进程
                                        foreach (System.Diagnostics.Process thisproc in System.Diagnostics.Process.GetProcesses())
                                        {
                                            if (thisproc.ProcessName.ToString() == "EXCEL")
                                            {
                                                thisproc.Kill();
                                            }
                                        }                                        myConnExcel.Close();                                        System.IO.File.Delete(ERRfilename);
                                        File.Copy(TemERRfilename, ERRfilename, false);
                                        System.IO.File.Delete(TemERRfilename);
                                        
                                    }                                                                  }

解决方案 »

  1.   

    文件夹权限不够嘛,设置成everyone
      

  2.   

    quote=引用 5 楼 Kim_Du 的回复:]
    出现这个问题,一般就是两种情况,一种是当前文件正被进程占用,还有就是操作权限不够,按照你得描述看,应该是第一种情况,你看一下代码里面是不是有进程冲突的地方
    提示文件正由另一进程使用,因此该进程无法访问该文件。
    [
      

  3.   

    查看一下你的代码,在操作当前文件的代码段结束的时候,将该关闭的资源的都关闭,我看你里面只是关闭了Application,
      

  4.   

    thisproc.Dispose();
    Thread.Sleep(1000);
      

  5.   

    查看一下你的代码,在操作当前文件的代码段结束的时候,将该关闭的资源的都关闭,我看你里面只是关闭了Application,
                                            System.IO.File.Delete(ERRfilename);                                         File.Copy(TemERRfilename, ERRfilename, false);                                         System.IO.File.Delete(TemERRfilename); 
    大概是这里。copy后没有释放出来,接着就删除文件,报错。
      

  6.   

    System.IO.File.Delete(ERRfilename);                                         
    File.Copy(TemERRfilename, ERRfilename,false);                                         System.IO.File.Delete(TemERRfilename); 
    应该是这里报错。copy后没有释放出来,接着就删除文件,报错。 
      

  7.   

    http://s.yanghao.org/program/viewdetail.php?i=398622
    你先看看是不是上面的原因
      

  8.   

    如果是这不错的话,你改为   
    System.IO.File.Delete(RDfilename); 
    Thread.Sleep(500);                                      
    File.Copy(TemRDfilename,RDfilename,false);                                      
    System.IO.File.Delete(TemRDfilename);  
    Thread.Sleep(500);            
    //File.Copy文件被复制完后会自动释放