【问题标题】:Writing a string into a text file from resources从资源中将字符串写入文本文件
【发布时间】:2019-09-18 13:22:36
【问题描述】:

我正在尝试将一个名为“a”的字符串从名为“file.txt”的资源中写入一个文本文件。无论如何,我总是收到“路径中的无效字符”错误。字符串“a”由“\r\n”的 string.join 获得,其中包含一个名为“lines”的数组,其中没有空条目。

我尝试使用正则表达式替换无效字符,但没有成功。

我想将 a 串起来保存到文本中。

        string a = string.Join("\r\n", lines);
        string ee = Regex.Replace(a, @"[\[\]\\\^\$\.\|\?\*\+\(\)\{\}%,;><!@#&\-\+/]", "");
        System.IO.File.WriteAllText(Properties.Resources.file, ee);

【问题讨论】:

  • answer to your previous question中已经提到,Properties.Resources.SomeFIle会返回嵌入资源的内容。它不是文件系统上的文件,您无法更改它。它是嵌入式的。

标签: c# winforms


【解决方案1】:

问题在于Properties.Resources.file 包含非法字符。 a 很好,您不必对其执行任何正则表达式即可解决此问题。

如果您不知道 Properties.Resources.file 是什么,请尝试在该行设置断点并检查 Properties.Resources.file 的设置

【讨论】:

    【解决方案2】:

    您不能像这样修改您的Properties.Resources 文件。 您收到的错误是因为您引用的路径 (Properties.Resources.xxxx) 不是有效路径。

    尝试将字符串保存到实际文件中,例如:

        string a = string.Join("\r\n", lines);
        string ee = Regex.Replace(a, @"[\[\]\\\^\$\.\|\?\*\+\(\)\{\}%,;><!@#&\-\+/]", "");
        System.IO.File.WriteAllText("output.txt", ee);
    

    这将在您的应用程序运行的当前目录中创建一个名为“output.txt”的文件。确保应用程序在此目录中确实具有写入权限。

    或者,您可以使用Properties.Settings,您可以在其中定义一个变量并在运行时对其执行读/写操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多