尝试使用最近创建的文件后程序崩溃.C#

Jas*_* T. 3 c# file-io streamwriter

所以这是我的代码

if (!File.Exists(pathName))
{
    File.Create(pathName);
}
StreamWriter outputFile = new StreamWriter(pathName,true);
Run Code Online (Sandbox Code Playgroud)

但每当我第一次运行程序时,都会创建带文件的路径.然而,一旦我到达StreamWriter行,我的程序崩溃了,因为它说我的fie正在被另一个进程使用.File.Create和StreamWriter语句之间是否缺少某些内容?

dtb*_*dtb 6

File.Create不只是创建文件 - 它还会打开它进行读写.因此,当您尝试创建StreamWriter时,该文件确实已经在使用:您自己的进程.

pathName如果文件不存在,StreamWriter将创建指定的文件,因此您只需删除File.Exists检查并简化您的代码:

using (var writer = new StreamWriter(pathName, true))
{
   // ...
}
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

StreamWriter构造函数(流)

为指定的文件[...]初始化StreamWriter类的新实例.如果文件存在,则可以覆盖或附加.如果该文件不存在,则此构造函数将创建一个新文件.