我有一个程序用于将数据写入excel文件....同时我使用excel文件使用(导入数据)工具从第一个excel文件导入数据。
这是程序代码的一部分:
private void Log(string pText)
{
//textBox1.AppendText(pText + "\r\n"); // does not put cr lf, why?
this.BeginInvoke(new MethodInvoker(delegate () {
textBox1.AppendText(pText);
textBox1.AppendText("\n");
}));
}
private void LogStatus(string pText)
{
textBox1.AppendText(pText + "\t");
textBox1.AppendText("\n");
}
StreamWriter theString = new StreamWriter(FileName + ".csv", true);
theString.WriteLine(DateTime.Now + dataToSave + "\t\n");
theString.Close();
我的问题是当我开始在Visual C#2008中取消我的程序时
它将工作并开始将数据写入第一个excel文件....然后在调试过程中
我想使用导入数据将数据从第一个excel文件导入到第二个excel文件中(对我来说实时执行此操作非常重要,因为我无法延迟导入过程)
debuging过程停止了,视觉C#2008高亮了这行代码
theString.Close();
并向我弹出一条消息说
该进程无法访问该文件,因为另一个进程已锁定该文件的一部分。
克服这个问题的任何帮助PLZ
并谢谢
答案 0 :(得分:0)
请向我们提供打开第一个文件的代码,以便我们在这里看到大图。
显然,某个地方存在此文件被锁定的情况,即使您自己使用StreamReader设置了对该文件的读写访问权限,也可能就是这种情况。
所以你的问题不是这个代码,而是碰巧锁定文件的代码。
当然,该文件也可能被其他应用程序锁定,但如果这是一个仅由您的程序使用的文件,那么它应该不是问题。
您是否首先使用任何Excel互操作来读取文件?可能是你没有从那里正确关闭文件,并且Excel仍然打开此文件?在这种情况下,即使Excel看起来没有运行,您也可以检查当您加载此错误时计算机上是否正在运行Excel.exe进程。
答案 1 :(得分:0)
你可以在rwx之前check for the related permissions。 This answer可能有帮助。
答案 2 :(得分:0)
也许你有一个开放的流或某事。关闭它们并重试。