我使用C#尝试了以下内容:
File.CreateText("x.y");
folderBrowserDialog1.ShowDialog();
string dir = folderBrowserDialog1.SelectedPath.ToString();
File.WriteAllText("x.y", dir);
但是当我运行该程序时,它表示该进程无法访问该文件(x.y),因为它正由另一个进程使用。
[file.WriteAllText
]
提前致谢。
答案 0 :(得分:3)
File.CreateText返回为您打开的StreamWriter 如果要使用File.WriteAllText,则需要在之前关闭该流。
StreamWriter sr = File.CreateText("x.y");
sr.Close();
或者根本就不要在那时创建文件,只是使用以下WriteAllText
来自MSDN上的WriteAllText
创建新文件,将指定的字符串写入文件,然后 关闭文件。如果目标文件已存在,则会被覆盖
答案 1 :(得分:1)
您需要删除
File.CreateText("x.y");
它会将StreamWriter
返回给您新创建的文件,您甚至不会使用或需要它。 File.WriteAllText
无法使用
创建新文件,将内容写入文件,然后关闭文件。如果目标文件已存在,则会被覆盖。
答案 2 :(得分:1)
我明白了。
如果文件已存在,File.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);