读取文件本地存储windowsphone

时间:2013-10-30 21:26:29

标签: windows-phone local-storage

我尝试从Windows应用程序中读取xml文件。 在这一篇中,我在Assets / Mocks / clubic.xml(构建操作:内容)中添加一个文件夹,以将xml文件中的数据用作模拟。 所以我尝试使用以下代码

         var package = Windows.ApplicationModel.Package.Current;
            var installedLocation = package.InstalledLocation;
            try
            {
                StorageFile sampleFile = await installedLocation.GetFileAsync("Assets/Mocks/clubic.xml");
            }
            catch (Exception ex)
            {

                throw ex;
            }

            try
            {
                StorageFile sampleFile = await installedLocation.GetFileAsync("ms-appx:///Assets/Mocks/clubic.xml");
            }
            catch (Exception ex)
            {

                throw ex;
            }

我获得了两个案例,同样的例外 System.ArgumentException:值不在预期范围内。    在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)    在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)    在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()    在FileReadWrite.MainPage.d__17.MoveNext()}

我尝试使用此代码

StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
            if (local != null)
            {
                // Get the DataFolder folder.
                var dataFolder = await local.GetFolderAsync("Assets/Mocks");

                // Get the file.
                var file = await dataFolder.OpenStreamForReadAsync("clubic.xml");

                // Read the data.
                using (StreamReader streamReader = new StreamReader(file))
                {
                    this.textBlock1.Text = streamReader.ReadToEnd();
                }

            }

我仍然得到同样的问题。 你能帮帮我吗?

最好的问候, 亚历山大

2 个答案:

答案 0 :(得分:4)

试试这个

StorageFile sampleFile = await installedLocation.GetFileAsync( @“Assets \ Mocks \ clubic.xml”);

答案 1 :(得分:3)

以下是我在我的应用中所做的事情,以阅读内容构建的文件:

var resource = System.Windows.Application.GetResourceStream(new Uri(@"Assets\Mocks\clubic.xml", UriKind.Relative));
using (StreamReader sr = new StreamReader(resource.Stream)) {
    this.textBlock1.Text = await sr.ReadToEndAsync();
}