C#无法写入文件("被其他进程使用")?

时间:2012-01-31 20:49:23

标签: c# file exception

我希望有人可以向我解释为什么会发生这种情况:)

当我使用下面的代码时,它给出了错误“进程无法访问文件'C:\ test.txt',因为它正被另一个进程使用。”

我对C#很新,所以我不确定发生了什么事,谢谢!

String fileNameBefore = @"C:\\test.txt";

public void output(String hex)
{
    using (StreamWriter writer = new StreamWriter(fileNameBefore, true))
    {
        writer.Write(hex);
        writer.Close();
    }
}

3 个答案:

答案 0 :(得分:6)

在写入之前关闭文本文件。 (不在代码中......物理关闭文本文件)

答案 1 :(得分:3)

在Windows Vista和Windows 7下,系统卷的根目录(通常为C :)具有特殊保护:程序必须以完全管理员权限运行才能执行除创建或删除非系统文件夹之外的任何操作。程序不允许在那里创建文件。为什么它说该文件正在被另一个进程使用?我期待另一条消息,但我想这确实是原因......除非你有一些其他程序打开了该文件并且对我们上面看到的代码的程序有足够的权利。

答案 2 :(得分:0)

通过检入Windows任务管理器并查找您的进程名称来确保正确关闭进程,如果您通过单击结束进程按钮手动找到任何结束进程并再次尝试。

如果这不起作用,请尝试将文件路径移动到可写区域(例如桌面),因为马里奥表示根有保护。

还检查文件是否未隐藏或写保护

希望这有助于问候 汤姆