C# GetFileFromApplicationUriAsync似乎永远挂起

C# GetFileFromApplicationUriAsync似乎永远挂起,c#,windows-8,windows-runtime,microsoft-metro,windows-store-apps,C#,Windows 8,Windows Runtime,Microsoft Metro,Windows Store Apps,我试图从一个文件中读取数据,而GetFileFromApplicationUriAsync,大多数时候永远挂起,你知道为什么会这样吗。我正在模拟器上调试应用程序 几点注意: BaseLocalFolder = "ms-appdata:///local/"; Uri baseUri = new Uri(BaseLocalFolder); Uri cardsUri = new Uri(baseUri, Path.Combine(set,"cards.ccc")); StorageFile file

我试图从一个文件中读取数据,而GetFileFromApplicationUriAsync,大多数时候永远挂起,你知道为什么会这样吗。我正在模拟器上调试应用程序

几点注意:

BaseLocalFolder = "ms-appdata:///local/";
Uri baseUri = new Uri(BaseLocalFolder);
Uri cardsUri = new Uri(baseUri, Path.Combine(set,"cards.ccc"));
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(cardsUri);

using (IInputStream stream = await file.OpenSequentialReadAsync())
{
    using (StreamReader rdr = new StreamReader(stream.AsStreamForRead()))
    {
        var cardArray = Windows.Data.Json.JsonArray.Parse(rdr.ReadToEnd());

        foreach (Tables.Card card in cardArray.ToCards())
        {
            _cards.Add(card.ToCardViewModel());
        }
    }
}
更新: 在我根据建议修改代码之后,我开始对ReadTextAsync()产生同样的问题,一旦它到达那一行,它就永远停留在那里,我永远不会得到字符串

StorageFile file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(Path.Combine(set, "cards.ccc"));

            try
            {

                string allCards = await Windows.Storage.FileIO.ReadTextAsync(file);

                var cardArray = Windows.Data.Json.JsonArray.Parse(allCards);
                foreach (Tables.Card card in cardArray.ToCards())
                {
                    _cards.Add(card.ToCardViewModel());
                }
            }
            catch (FileNotFoundException err)
            {
                string s = "";
            }

Path.Combine(set,“cards.ccc”)
中的
set
的值是多少?您有没有调用
Wait
Result
进一步调用堆栈?@Xyroid该值可以是许多值中的一个,例如:“黑钢”、“联盟”。Stephen,如果我理解了你的问题,这段代码被包装在一个异步方法中,我会等待,除了你看到的,在这个方法上没有其他代码。代码一直执行,直到它到达GetFileFromApplicationUriAsync,并永远停留在那里,我昨晚离开了,它再也没有通过。您在变量
文件中得到任何值吗?您是否尝试使用
Windows.Storage.ApplicationData.Current.LocalFolder.GetFolderAsync(…)
Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync(…)
而不是
StorageFile.GetFileFromApplicationUriAsync(…)
?cards.ccc接缝是JSON文件,对吗?要读取cards.ccc,请尝试
Windows.Storage.FileIO.ReadTextAsync(…)
@Xyroid我做了您建议的更改,现在它已交给ReadTextAsync,文件大约为300K,因此读取时间应该不会太长。