C# 进程无法访问该文件
我有一个将数据写入excel文件的程序。。。。同时,我使用(导入数据)工具使用excel文件从第一个excel文件导入数据 这是程序代码的一部分:C# 进程无法访问该文件,c#,C#,我有一个将数据写入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.Ap
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文件(实时导入对我来说很重要,我不能延迟导入过程)
调试过程停止,visual C#2008高亮显示了这行代码
一条弹出的消息对我说 该进程无法访问该文件,因为另一个进程已锁定该文件的一部分 在克服这个问题上有什么帮助吗
谢谢请提供打开第一个文件的代码,这样我们就可以在这里看到全局 显然,该文件在某个地方被锁定,即使您自己使用StreamReader获得了对该文件的读写访问权限,也可能是这样 因此,您的问题不在于此代码,而在于锁定文件的代码 当然,该文件也可能被另一个应用程序锁定,但是如果这是一个仅由您的程序使用的文件,那么它应该不会是一个问题
您是否首先使用Excel互操作来读取文件?可能是因为您没有正确地从那里关闭文件,而Excel仍然打开此文件?在这种情况下,当您输入此错误时,您可能可以检查您的计算机上是否正在运行Excel.exe进程,即使Excel看起来没有运行。您可以在rwx之前进行检查。可能会有帮助。可能您有一个打开的流或其他内容。请关闭它们,然后重试。看起来问题在于创建第一个文件。那么您是否正确地关闭了该文件?Excel是否仍然打开该文件?如果是这样的话,那就是问题所在。我没有打开第一个excel文件。我使用另一个excel文件从第一个excel文件导入数据(导入对我来说是必须的)我不能延迟导入cos。我有很多数据是程序在实时提要中写入的,我想使用导入函数(也是实时的)查看这些数据hi iv只需添加程序用于写入excel文件的代码的其他部分我看到您使用了BeginInvoke,这会导致您提供的委托异步运行。由于您在这里只给出了部分代码,我只能猜测,但我认为读取文件的异步代码可能尚未完成运行,因此锁定了该文件。
theString.Close();