gpt4 book ai didi

c# - 使用 if 语句创建文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:46 24 4
gpt4 key购买 nike

我正在尝试创建一个基本的日志记录系统,以将类的每次调用记录到名为 log.csv 的文件中。我有一个名为 logPath 的字符串,其中包含 ..\\..\\log.csv 和另一个名为 logData 的字符串,其中包含的信息我想写入日志文件。

我目前的代码:

if (!File.Exists(logPath))
{
File.Create(logPath);
StreamWriter writeLog = new StreamWriter(logPath, true);
writeLog.WriteLine(logData);
writeLog.Close();

}
else if (File.Exists(logPath))
{
StreamWriter writeLog = new StreamWriter(logPath, true);
writeLog.WriteLine(logData);
writeLog.Close();
}

但是,当我运行代码并且日志文件不存在时,程序崩溃但仍然创建文件 log.csv,但是 logData 中的数据没有写入文件。当我再次运行程序时,因为文件存在,所以编写类的每次调用都没有问题。当程序在创建文件时崩溃,它会抛出一个 IOException,声称该文件正被另一个进程使用。

最佳答案

删除以下行(这会创建文件并使其保持打开状态,而您尝试再次创建它的下一行会崩溃,因为它已创建且文件仍处于打开状态):

File.Create(logPath);

这就是为什么您收到的消息表明该文件正在被另一个进程使用,而实际上它是由 File.Create 引起的您自己的进程

完整的所有你需要的是用下面的代码替换你的整个代码(如果它不存在,它会创建文件)

using(var writeLog = new StreamWriter(logPath, true))
{
WriteLog.WriteLine(logData);
writeLog.Close();
}

关于c# - 使用 if 语句创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33302702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com