我正在构建一个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权限?
答案 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);