FileIO.ReadTextAsync返回“空字符串”。 出错写XML FIL(FileIO.

2019-10-21 02:04发布

FileIO.ReadTextAsync总是返回空字符串(“”)在Windows 8应用程序。 我工作的通用应用程序,需要注意的是, FileIO.ReadTextAsync在Windows Phone应用程序部署时返回字符串,但在Windows 8应用程序返回空字符串? 这里是我的代码。

async Task<string> LoadStatus(String listFileName)
{
    StorageFile localFile = await ApplicationData.Current.LocalFolder.GetFileAsync(listFileName);
    string configData = await FileIO.ReadTextAsync(localFile);
    return configData;
}

和我调用此功能,

string result = await LoadStatus(AppConstants.VeryHappyStatusListName);

而listFileName是“filename.xml中 ”。

我已经经历了这些(去POST1和POST2 )员额和遵循同样的程序,但仍返回null?

另外有一点要注意的是,我得到错误,而写入数据。 有时它完美地写入数据,有时我得到的错误而写。

这是我保存到存储方法。

async public void SaveStatus(List<Datum> list, String listFileName)
        {
            try
            {
                string localData = ObjectSerializer<List<Datum>>.ToXml(list);

                if (!string.IsNullOrEmpty(localData))
                {
                    StorageFile localFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(listFileName, CreationCollisionOption.ReplaceExisting);

                    if (localFile != null)
                    {
                        //await Task.Delay(3000);
                        await FileIO.WriteTextAsync(localFile, localData);
                    }
                }
            }
            catch (Exception ex)
            {
                DebugPrint(ex.Message.ToString());
                DebugPrintLocation("SaveStaus", "SessionStorage");
            }
        }

我下面这个链接: https://code.msdn.microsoft.com/windowsapps/CSWinStoreAppSaveCollection-bed5d6e6

同样重要的一点需要注意的是,如果我检查使用断点每行一切顺利。 我能救大名单和检索。 但无法控制没有断点。

Answer 1:

我在Windows 8中的应用程序使用,而且运作良好:

    public async void ReadTextFile(string cFile)
    {
        var folder = KnownFolders.PicturesLibrary;
        var file = await folder.GetFileAsync(cFile);
        var read = await FileIO.ReadTextAsync(file);
        CurrentFileBuffer = read;
    }


Answer 2:

这应该适用于写作。 它也可能是一个好主意,说明你得到它错误究竟何时发布问题。

public async Task WriteDataToFileAsync(string fileName, string content)
{
    byte[] data = System.Text.Encoding.Unicode.GetBytes(content);
    var folder = KnownFolders.PicturesLibrary;
    var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
    using (var s = await file.OpenStreamForWriteAsync())
    {
        await s.WriteAsync(data, 0, data.Length);
    }
}


文章来源: FileIO.ReadTextAsync returns “Empty String”. Error while writing xml fil