写入内部文本文件

Writing to internal text files

我在 C# 中使用 Windows 表单,我试图在我的程序中使用一种方法,用户可以在其中更新内部文本文件。此文本文件是程序的一部分,但未在资源中列出。目前我的程序可以很好地将文本文件读入文本框,我只是在为如何写入该文件而苦苦挣扎(并且因为内容暂时在文本框中,所以如果文本文件内容完全被内容覆盖也没关系文本框)。

这是我用来读入文本框的代码(可能有更好的方法 - 但目前有效):

var resourceRegions = "SalesMap.Regions.txt";
var assembly = Assembly.GetExecutingAssembly();

using (Stream fileStream = assembly.GetManifestResourceStream(resourceRegions))
using (StreamReader reader = new StreamReader(fileStream))
{
    string Regions = "";

    while (!reader.EndOfStream)
    {
        Regions += reader.ReadLine();
        Regions += Environment.NewLine;
    }
    Console.WriteLine(Regions);
    textBoxEdit.Text = Regions;
}

这是我试图用来写入文本框的代码(单击按钮):

var resourceRegions = "SalesMap.Regions.txt";
var assembly = Assembly.GetExecutingAssembly();

using (Stream fileStream = assembly.GetManifestResourceStream(resourceRegions))
using (StreamWriter writer = new StreamWriter(fileStream))
{ 
    try
    {
        writer.Write(textBoxEdit.Text.ToString());
        writer.Close();
        writer.Dispose();
    }
    catch
    {
        Console.WriteLine("Problem...");
    }
}

目前它在 new StreamWriter(fileStream)) 处失败并抛出 "ArgumentException was unhandled"。有人看到我错过了什么吗?有更好的方法吗?

它可能不知道要写入的路径,但像这样写出来可能更容易:

        System.IO.File.WriteAllText(@"C:\Users\Public\TestFolder\Salesmap.regions.txt", textboxedit.text); 

这是使用 streamwriter 的正确方法,只是给你一些想法:

using (System.IO.StreamWriter file = 
        new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt"))
    {
        foreach (string line in lines)//lines is an array of strings
        {

               file.WriteLine(line);

        }
    }

编译资源,程序集内容为只读。

如果您想为内容提供一种可更新的方式,请先将资源写入磁盘,然后从该位置加载并保存以供在 UI.

中使用