从Windows Phone 7中读取文件

我的项目中有一个名为data/的文件夹,其中包含txt files

我将Build Action配置为所有文件的resources

我试过这些不同的方式:

方法1

 var resource = Application.GetResourceStream(new Uri(fName, UriKind.Relative)); StreamReader streamReader = new StreamReader(resource.Stream); Debug.WriteLine(streamReader.ReadToEnd()); 

方法2

 IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication(); string[] fileNames = myIsolatedStorage.GetFileNames("*.txt"); 

方法3

 using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { using (StreamReader fileReader = new StreamReader(new IsolatedStorageFileStream(fName, FileMode.Open, isf))) { while (!fileReader.EndOfStream) { string line = fileReader.ReadLine(); al.Add(line); Debug.WriteLine(line); } } } 

现在,我尝试了不同的方法来读取文件而没有成功,为什么?
问题出在哪儿?

这些方法有什么问题?

fName是文件的名称。
这是必要的完整路径data / filename.txt? 它无动于衷……

请帮我解决这个愚蠢的问题,
谢谢。

你的第二和第三种方法是错误的。 当您在应用程序中本地包含文本文件时,无法通过IS引用它。 相反,使用此函数,如果找到它将返回文件内容,否则它将返回"null" 。 它对我有用,希望它适合你。

注意,如果文件被设置为内容,则filePath = "data/filename.txt"但是如果它被设置为资源,则应该像这个filePath = "/ProjectName;component/data/filename.txt" ProjectName; "/ProjectName;component/data/filename.txt" "data/filename.txt"一样引用它。 这可能是您的第一种方法可能失败的原因。

  private string ReadFile(string filePath) { //this verse is loaded for the first time so fill it from the text file var ResrouceStream = Application.GetResourceStream(new Uri(filePath, UriKind.Relative)); if (ResrouceStream != null) { Stream myFileStream = ResrouceStream.Stream; if (myFileStream.CanRead) { StreamReader myStreamReader = new StreamReader(myFileStream); //read the content here return myStreamReader.ReadToEnd(); } } return "NULL"; }