C# Windows Phone 8-读取和写入项目中现有的txt文件

C# Windows Phone 8-读取和写入项目中现有的txt文件,c#,xaml,windows-phone-8-sdk,C#,Xaml,Windows Phone 8 Sdk,嗨,我遇到了一个问题,我创建了一个txt文件,放在应用程序上。我试着从上面读我以前写的内容。使用该代码: public async Task WriteDataToFileAsync(string fileName, string content) { byte[] data = Encoding.Unicode.GetBytes(content); var folder = ApplicationData.Current.LocalFolder

嗨,我遇到了一个问题,我创建了一个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);
    }
公共异步任务WriteDataofileAsync(字符串文件名、字符串内容)
{
byte[]data=Encoding.Unicode.GetBytes(content);
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.CreateFileAsync(文件名,CreationCollisionOption.ReplaceExisting);
使用(var s=await file.OpenStreamForWriteAsync())
{
等待s.WriteAsync(数据,0,数据.长度);
}
}
公共异步任务ReadFileContentsAsync(字符串文件名)
{
var folder=ApplicationData.Current.LocalFolder;
尝试
{
var file=await folder.OpenStreamForReadAsync(文件名);
使用(var streamReader=newstreamreader(文件))
{
返回streamReader.ReadToEnd();
}
}
捕获(例外)
{
MessageBox.Show(“错误”);
返回字符串。空;
}
}
私有异步void函数whereneedreeding()
{
string contents=wait this.ReadFileContentsAsync(“myimportedfile.txt”);
MessageBox.Show(内容);
}

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

我最近在WP 7项目中创建了一个helper函数,用于读取项目中包含的文本文件。您可以尝试使用它,该功能也适用于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文件夹下):


最近,我在wp7项目中创建了一个helper函数,用于读取项目中包含的文本文件。您可以尝试使用它,该功能也适用于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文件夹下):


真是太完美了!终于成功了!但是请原谅,为了写作(并用一个新的文本替换我放的文本,我必须创建一个像这样的公共函数。)(我没有放我写的写作函数,但我现在就做了。真的很完美!最终它起作用了!但是请原谅,为了写作(并用一个新的文本替换我输入的文本,我必须创建一个像这样的公共函数,rigth?(我没有输入我编写的书写函数,但我现在这样做了。)。