我想用来自web的文本文件替换作为IsolatedStorageFile存在的文本文件。
var store = IsolatedStorageFile.GetUserStoreForApplication()
IsolatedStorageFileStream rootFile = store.CreateFile("InTheRoot.txt");
IsolatedStorageFile.CopyFile(rootFile, "http://example.com/test.txt" , true);
这里的错误是什么?感谢。
答案 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
。
答案 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;中了。元件。
这不是真正推荐的,但它会让你开始运行。