C# 如何让GetResourceStream读取扩展名不是.txt的文件?

C# 如何让GetResourceStream读取扩展名不是.txt的文件?,c#,.net,visual-studio,windows-phone-7,C#,.net,Visual Studio,Windows Phone 7,我有以下代码: var resource = System.Windows.Application.GetResourceStream(new Uri("movies.txt", UriKind.Relative)); StreamReader streamReader = new StreamReader(resource.Stream); string z = streamReader.ReadToEnd(); 当我将movies.txt扩展名更改为movies.plist时,即使文

我有以下代码:

 var resource = System.Windows.Application.GetResourceStream(new Uri("movies.txt", UriKind.Relative));
 StreamReader streamReader = new StreamReader(resource.Stream);
 string z = streamReader.ReadToEnd();
当我将
movies.txt
扩展名更改为
movies.plist
时,即使文件仍然是纯文本,代码也不再起作用。我如何解决这个问题?我需要将文件扩展名保留为.plist


我得到的错误是第二行的
NullReferenceException

尝试使用System.IO.FileInfo类打开文件。这将允许您打开一个文件流

var file = new System.IO.FileInfo("c:\foo.bar");
var FileStream = file.OpenRead();
Byte b = (Byte)FileStream.ReadByte();
Debug.WriteLine(b.ToString());

编辑:更正代码。

编辑:发布此消息后,我意识到此解决方案在Windows phone环境中不可用

如果您只想读取一个文本文件,那么使用以下命令可能更有意义:

string result = System.IO.File.ReadAllText("myTextFile.ext");

您想专门使用StreamReader有什么特别的原因吗?

您的问题与
StreamReader
无关(除非您将其传递为null时它会抱怨)。您的问题在
GetResourceStream
中(它返回null)。否。我是Windows编程新手,所以这只是我遇到的第一个选项。顺便说一句,我不会在System.IO.File名称空间中显示“ReadAllText”方法作为选项。你知道为什么吗?我正在为WinPhone7开发。啊,我很抱歉。我没注意到。我的错。我显示FileStream.ReadByte()返回一个int,而不是一个字节。对不起,我已经修复了它。它返回一个整数,表示从文件中读取的字节值。只需要将Int32转换为一个字节,如果这是您想要的格式的话。我没有文件的确切路径,因为它包含在VS项目中。关于如何从FileInfo函数访问该文件,您有什么想法吗?您可以只引用文件名而不引用驱动器名,它将在进程的工作目录中查找该文件。您可以使用
System.Diagnostics.Process
类发现进程的工作目录。
Process
上有一个名为
StartInfo
的属性,它返回一个
System.Diagnostics.ProcessStartInfo
对象,该对象具有一个
WorkingDirectory
属性。