如何替换.text文件Windows Phone 8

时间:2014-03-02 13:20:30

标签: c# windows-phone-8

我想用来自web的文本文件替换作为IsolatedStorageFile存在的文本文件。

var store = IsolatedStorageFile.GetUserStoreForApplication()
IsolatedStorageFileStream rootFile = store.CreateFile("InTheRoot.txt");
IsolatedStorageFile.CopyFile(rootFile, "http://example.com/test.txt" , true);

这里的错误是什么?感谢。

2 个答案:

答案 0 :(得分:0)

更改此行:

IsolatedStorageFile.CopyFile(rootFile, "http://example.com/test.txt" , true);

到此:

store.CopyFile("InTheRoot.txt", "http://example.com/test.txt" , true);

将修复“非静态字段,方法或属性需要对象引用”错误,并且下一个错误“无法从'System.IO.IsolatedStorage转换。 IsolatedStorageFileStream'到'string'“。因为第一个参数的预期类型是string而不是IsolatedStorageFileStream

[For Reference]

答案 1 :(得分:0)

您无法使用IsolatedStorageFile.CopyFile()从互联网上下载文件。

快速而肮脏的方法是使用隐藏的WebBrowser控件:

XAML

<phone:WebBrowser x:Name="Browser" Navigated="Browser_Navigated" Visibility="Collapsed"></phone:WebBrowser>
<TextBlock x:Name="Text"></TextBlock>

C#

   public MainPage()
    {
        InitializeComponent();

        Browser.Navigate(new Uri("http://example.com/test.txt"));
    }

    private void Browser_Navigated(object sender, NavigationEventArgs e)
    {
        var store = IsolatedStorageFile.GetUserStoreForApplication();
        var filename = "InTheRoot.txt";

        if (store.FileExists(filename)) store.DeleteFile(filename);

        using (var stream = store.CreateFile(filename))
        {
            using (var writer = new StreamWriter(stream))
            {
                writer.Write(Browser.SaveToString());
            }
        }

        using (var file = store.OpenFile(filename, FileMode.Open))
        {
            using(var reader = new StreamReader(file))
            {
                Text.Text = reader.ReadToEnd();
            }
        }
    }

这个问题的主要问题是它将文本文件内容包装在&lt; HTML&gt;&lt; BODY&gt;中了。元件。

这不是真正推荐的,但它会让你开始运行。

从网络检索内容的更好方法是使用BackgroundTransferRequest详细herehere