Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 进程无法访问该文件_C# - Fatal编程技术网

C# 进程无法访问该文件

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

我有一个将数据写入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文件(实时导入对我来说很重要,我不能延迟导入过程)

调试过程停止,visual C#2008高亮显示了这行代码



一条弹出的消息对我说

该进程无法访问该文件,因为另一个进程已锁定该文件的一部分

在克服这个问题上有什么帮助吗


谢谢

请提供打开第一个文件的代码,这样我们就可以在这里看到全局

显然,该文件在某个地方被锁定,即使您自己使用StreamReader获得了对该文件的读写访问权限,也可能是这样

因此,您的问题不在于此代码,而在于锁定文件的代码

当然,该文件也可能被另一个应用程序锁定,但是如果这是一个仅由您的程序使用的文件,那么它应该不会是一个问题


您是否首先使用Excel互操作来读取文件?可能是因为您没有正确地从那里关闭文件,而Excel仍然打开此文件?在这种情况下,当您输入此错误时,您可能可以检查您的计算机上是否正在运行Excel.exe进程,即使Excel看起来没有运行。

您可以在rwx之前进行检查。可能会有帮助。

可能您有一个打开的流或其他内容。请关闭它们,然后重试。

看起来问题在于创建第一个文件。那么您是否正确地关闭了该文件?Excel是否仍然打开该文件?如果是这样的话,那就是问题所在。我没有打开第一个excel文件。我使用另一个excel文件从第一个excel文件导入数据(导入对我来说是必须的)我不能延迟导入cos。我有很多数据是程序在实时提要中写入的,我想使用导入函数(也是实时的)查看这些数据hi iv只需添加程序用于写入excel文件的代码的其他部分我看到您使用了BeginInvoke,这会导致您提供的委托异步运行。由于您在这里只给出了部分代码,我只能猜测,但我认为读取文件的异步代码可能尚未完成运行,因此锁定了该文件。
 theString.Close();