从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"; }