可能重复:
The file is being used by another process, I must close it? How?
我不确定为什么会这样,但我无法将一些数据写入文本文件。我这样做:
private void CreateLastOpenFile()
{
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
if (!File.Exists(file))
{
FileStream newFile = File.Create(file);
newFile.Close();
}
using (StreamWriter lastOpenedFile = new StreamWriter(file))
{
lastOpenedFile.WriteLine(filePath);
}
}
我这样做是否正确?我应该检查目录是否存在?如果文件存在?什么是正确的方法?我使用的是MSDN中的示例,但我不知道该怎么做。
答案 0 :(得分:1)
我宁愿这样做:
String p = Path.GetDirectoryName(fileName);
if (!Directory.Exists(p))
{
Directory.CreateDirectory(p);
}
FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write);
using (StreamWriter writer = new StreamWriter(stream))
{
...
writer.Flush();
}
如果该文件不存在,则会创建一个新文件。
using
会自动调用编写器上的Dispose
,编写器会调用Close
,这会关闭编写器和基础流。
答案 1 :(得分:1)
您不需要来创建文件,StreamWriter会为您完成。但是你需要确保目录存在,就像你一样。
您也可以使用File.OpenText。