1

嗨,我遇到了一个问题,我创建了一个 txt 文件并放在应用程序上。我试图从中读取我之前写在上面的内容。使用该代码:

    public async Task WriteDataToFileAsync(string fileName, string content)
    {
        byte[] data = Encoding.Unicode.GetBytes(content);

        var folder = ApplicationData.Current.LocalFolder;
        var file = await folder.CreateFileAsync(fileName,CreationCollisionOption.ReplaceExisting);

        using (var s = await file.OpenStreamForWriteAsync())
        {
            await s.WriteAsync(data, 0, data.Length);
        }
    }

    public async Task<string> ReadFileContentsAsync(string fileName)
    {
        var folder = ApplicationData.Current.LocalFolder;

        try
        {
            var file = await folder.OpenStreamForReadAsync(fileName);

            using (var streamReader = new StreamReader(file))
            {
                return streamReader.ReadToEnd();
            }
        }
        catch (Exception)
        {
            MessageBox.Show("Error");
            return string.Empty;
        }
    }

    private async void functionWhereNeedReeding()
    {
        string contents = await this.ReadFileContentsAsync("myimportedfile.txt");
        MessageBox.Show(contents);
    }

一直给我错误信息,我不明白我的错误在哪里。希望你能帮助我。当然内容仍然是空的。

4

1 回答 1

4

我最近在我的 WP 7 项目中创建了一个辅助函数,用于读取项目中包含的文本文件。您可以尝试使用它,该功能也适用于 WP 8 项目:

public static class FileHelper
{
    public static string ReadFile(string filePath)
    {
        var ResrouceStream = Application.GetResourceStream(new Uri(filePath, UriKind.Relative));
        if (ResrouceStream != null)
        {
            Stream myFileStream = ResrouceStream.Stream;
            if (myFileStream.CanRead)
            {
                StreamReader myStreamReader = new StreamReader(myFileStream);

                return myStreamReader.ReadToEnd();
            }
        }
        return "";
    }
}

然后我可以以这种方式使用该功能(在此示例中,文件位于 Assets 文件夹下):

var textFileContent = FileHelper.ReadFile(@"Assets\MyTextFile.txt");
于 2014-01-15T11:09:37.180 回答