我有一个需要将数据点记录到.CSV文件中的Winforms程序.它相当简单,日期/时间和双倍(数据),然后转到下一行.
这是我到目前为止(不工作,我得到一个错误,说文件正忙/已经打开 - 但是,它是空的)
if (!Directory.Exists(SavePath.Text + "\\LOG"))
Directory.CreateDirectory(SavePath.Text + "\\LOG");
string LogFileName = SavePath.Text + "\\LOG\\Seeing-Log-" + TimeNow.ToString("yyyy-MM-dd") + ".csv";
if (!File.Exists(LogFileName))
File.Create(LogFileName);
string LogString = TimeNow.ToString("yyyy-MM-dd-_HH-mm-ss") + "," + FWHM_Value.ToString("F:");
File.AppendAllText(LogFileName, LogString + Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)
这是生成错误的最后一行.
知道我做错了什么吗?
谢谢Steve
File.Create返回FileStream刚刚创建的文件的open .更改代码以FileStream在不存在和存在的文件情况下使用,或者在创建文件后关闭文件:
if (!File.Exists(LogFileName))
File.Create(LogFileName).Close();
Run Code Online (Sandbox Code Playgroud)
但是,当然,如果您查看以下文档AppendAllText:
将指定的字符串追加到文件中,如果该文件尚不存在则创建该文件.
您会发现上述两行完全是冗余的,可以删除:
if (!Directory.Exists(SavePath.Text + "\\LOG"))
Directory.CreateDirectory(SavePath.Text + "\\LOG");
string LogString = TimeNow.ToString("yyyy-MM-dd-_HH-mm-ss") + "," + FWHM_Value.ToString("F:");
File.AppendAllText(LogFileName, LogString + Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |