如果我在新创建的文件中写入内容,则会出现错误。
这是我的代码:
private void ButtonClick(object sender, EventArgs e)
{
Button b = (Button)sender;
string inputKey = b.Text;
for (int i = 0; i < tunes.Length; i++)
{
if (b.Text == tun[i].TuneName)
{
Console.Beep(tun[i].Frequency, 200);
Input.Items.Add(b.Text);
Output.Items.Add(tun[i].TuneName);
if (startButtonPressed == true)
{
filename2 = musicFileName + ".csv";
File.WriteAllText(filename2, tun[i].TuneName);
RecordList.Items.Add(tun[i].TuneName);
}
}
}
}
错误出现在Line:File.WriteAllText()... 它说文件无法使用,因为它被另一个进程使用,但我没有打开任何文件。
答案 0 :(得分:0)
您需要确保变量filename2
包含C:\temp\myfile
之类的有效路径,而不仅仅是myfile
如果位置不是,您可能还需要使用提升的权限运行visual studio否则可以访问
答案 1 :(得分:0)
你也可以使用streamwriter ......
using (StreamWriter writer =new StreamWriter(musicFileName + ".csv";))
{
writer.Write(tun[i].TuneName);
}
答案 2 :(得分:0)
我使用File.Create()
生成的文件流,但我会在using语句中创建循环,因此您要确保所有资源都将在最后发布(这就是您使用{{1}的原因})。
using
您实际遇到的问题是,您从未关闭过您的文件。你应该查找using-keyword。它只能用于实现IDisponsable接口的类。然后它会在 using (FileStream fs = File.Create(Path.Combine(musicFileName, ".csv")))
{
foreach (tun in tunes)
{
fs.Write(tun.TuneName);
}
}
块的末尾调用disponse()
并且所有资源都将被释放,例如文件将被关闭。