我使用c#尝试了以下操作:
File.CreateText("x.y");
folderBrowserDialog1.ShowDialog();
string dir = folderBrowserDialog1.SelectedPath.ToString();
File.WriteAllText("x.y", dir);
但是当我运行程序时,它说进程不能访问文件(x.y),因为它正在被另一个进程使用。
[At file.WriteAllText
]
文件。CreateText返回一个为你打开的StreamWriter。
如果你想使用File。WriteAllText你需要关闭流。
StreamWriter sr = File.CreateText("x.y");
sr.Close();
或者干脆不创建文件,只使用下面的WriteAllText
From WriteAllText on MSDN
创建一个新文件,将指定的字符串写入文件,然后关闭文件。如果目标文件已经存在,则覆盖
你需要删除
File.CreateText("x.y");
它返回你的StreamWriter
到新创建的文件,你甚至不使用或不需要。File.WriteAllText
没有它也可以工作
创建新文件,将内容写入该文件,然后关闭该文件。如果目标文件已经存在,则覆盖该文件。
我明白了。
文件。如果文件已经存在,CreateText将打开该文件。
所以不是:
File.CreateText("x.y");
folderBrowserDialog1.ShowDialog();
string dir = folderBrowserDialog1.SelectedPath.ToString();
File.WriteAllText("x.y", dir);
我:
if (!File.Exists("x.y"))
{
File.CreateText("x.y");
}
folderBrowserDialog1.ShowDialog();
string dir = folderBrowserDialog1.SelectedPath.ToString();
File.WriteAllText("x.y", dir);