我收到错误
未处理的类型' System.IO.IOException'发生在mscorlib.dll
其他信息:该过程无法访问该文件>' c:\ Tvarkarastis \ Tvarkarastis.txt'因为它正被另一个进程使用。
当我尝试使用
时private void sukurtiFailąToolStripMenuItem_Click(object sender, EventArgs e)
{
string pathString = System.IO.Path.Combine(@"c:\", "Tvarkarastis");
System.IO.Directory.CreateDirectory(pathString);
string fileName = "Tvarkarastis.txt";
pathString = System.IO.Path.Combine(pathString, fileName);
System.IO.File.Create(pathString);
richTextBox1.Clear();
pathString = System.IO.Path.Combine(@"c:\Tvarkarastis", "Tvarkarastis.txt");
string[] lines = { "First line", "Second line", "Third line" };
richTextBox1.AppendText("Prašome atsidaryti failą ir jį pakeisti. Failas yra : " + pathString + Environment.NewLine);
System.IO.File.WriteAllLines(pathString, lines);
}
此函数尝试创建文件并写入文件。如果我禁用写入并仅保留文件创建,则函数有效。 我是编码新手,所以如果代码或我的解释中有些愚蠢的话,请原谅。
答案 0 :(得分:2)
文件在创建时被锁定,因为使用File.create()
为新文件生成FileStream,在创建文件时,您应该在using
指令中创建,然后从那里继续您的代码:< / p>
using (StreamWriter sw = new StreamWriter(File.Create(pathString)))
{
richTextBox1.Clear();
string[] lines = { "First line", "Second line", "Third line" };
richTextBox1.AppendText("Prašome atsidaryti failą ir jį pakeisti. Failas yra : " + pathString + Environment.NewLine);
foreach (var line in lines)
{
sw.WriteLine(line);
}
}