Winform中的嵌入式txt文件中的“Stream is not writable”异常

时间:2014-09-20 06:06:55

标签: c# winforms

我正在构建一个WinForm应用程序来管理我想要访问和修改的一些非常简单的数据(在嵌入式.txt文件上)。使用StreamReader可以访问数据,但是当它修改它时,该代码会抛出" Stream不可写"例外:

System.Reflection.Assembly thisExe; //The first 3 lines are from msdn
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
Stream str = thisExe.GetManifestResourceStream("a.b.txt");
StreamWriter sw = new StreamWriter(str);

我尝试了Stream.CanWrite属性,但它是只读的。

有没有办法获取该文本文件的CanWrite权限?

1 个答案:

答案 0 :(得分:2)

Stream作为GetManifestResourceStream的返回值无法写入。嵌入的资源被编译到你的exe / dll中,并不打算进行修改。

  

清单资源是一种资源(例如图像文件)   在编译时嵌入到程序集中。

使用Settings代替或将资源Stream复制到另一个Stream,请参阅Write file from assembly resource stream to disk

File.WriteAllText("C:\a.b.txt", Resources.ResourceName);