我无法将文本写入文本文件

本文关键字:文本 文件 | 更新日期: 2023-09-27 18:19:09

可能的重复项:
该文件正被另一个进程使用,我必须关闭它?如何?

我不确定为什么会这样,但我无法将一些数据写入文本文件。我是这样做的:

    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中的示例,但我不确定如何做到这一点。

我无法将文本写入文本文件

我宁愿这样做:

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 ,这会关闭编写器和基础流。

你不需要

创建文件,StreamWriter会为你做。但是你需要确保目录存在,就像你一样。

您也可以使用 File.OpenText。