我一直在c#中编写一个Windows窗体应用程序。我需要将一些数据写入应用程序目录子目录中的文件。当我创建一个编写器时,我收到一个异常,声明它无法创建一个编写器,因为该文件已在另一个进程中打开。
我有:
StreamWriter writer = new StreamWriter(Application.StartupPath + "@\database\savedStaff.txt");
我所拥有的例外是这样的: "进程无法访问文件....因为它正由另一个进程使用。"
除了正在访问该目录的visual studio之外,我没有其他任何东西。我甚至关闭了我用于版本控制的源代码树,以确保不是问题所在。任何有关解决此问题的提示都将非常感激。
答案 0 :(得分:0)
错误可能会产生误导。这可能是共享问题,但也可能是权限问题。默认情况下,Program Files目录和所有子目录都需要升级到管理员权限才能写入它们。仅使用管理员帐户登录通常是不够的;您必须明确授予程序以管理员身份运行的权限。这是一个反恶意软件的事情;从理论上讲,除非您通过UAC允许,否则无法修改您的可执行文件。我看到许多程序,包括我自己的程序,报告该文件是由另一个进程打开的,当时Windows拒绝访问的真正原因是基于权限的。
要解决这个问题,您可以: