使用 FileStream 打开资源文件失败
Open Resource File with FileStream fails
我想用 FileStream 打开一个资源文件 Class。这是一个文本文件,我想逐行阅读它。
FileStream fs = new FileStream(Properties.Resources.Testing, FileMode.Open, FileAccess.Read);
调用的异常是System.ArgumentException
,它说有一个无效的字符。
我希望任何人都可以帮助我解决这个问题,或者如果有更好的方法也可以,但我需要 .exe 中的文件,所以它需要是一个资源..
当您将文本文件添加为资源时,它将作为 字符串 嵌入。因此,您的 FileStream 构造函数调用将假设您正在尝试打开磁盘上的文件,其名称与文本文件内容相同。当然结局很糟糕。
如果你真的想要一个流,还不是很清楚,字符串往往是好的,你可以考虑 String.Split() 方法把它分成几行。或者你可能喜欢 StringReader class 所以你可以使用 ReadLine():
using (var rdr = new StringReader(Properties.Resources.Testing)) {
string line;
while ((line = rdr.ReadLine()) != null) {
// Do something with line
//...
}
}
我想用 FileStream 打开一个资源文件 Class。这是一个文本文件,我想逐行阅读它。
FileStream fs = new FileStream(Properties.Resources.Testing, FileMode.Open, FileAccess.Read);
调用的异常是System.ArgumentException
,它说有一个无效的字符。
我希望任何人都可以帮助我解决这个问题,或者如果有更好的方法也可以,但我需要 .exe 中的文件,所以它需要是一个资源..
当您将文本文件添加为资源时,它将作为 字符串 嵌入。因此,您的 FileStream 构造函数调用将假设您正在尝试打开磁盘上的文件,其名称与文本文件内容相同。当然结局很糟糕。
如果你真的想要一个流,还不是很清楚,字符串往往是好的,你可以考虑 String.Split() 方法把它分成几行。或者你可能喜欢 StringReader class 所以你可以使用 ReadLine():
using (var rdr = new StringReader(Properties.Resources.Testing)) {
string line;
while ((line = rdr.ReadLine()) != null) {
// Do something with line
//...
}
}