#xml #visual-studio #windows-phone-7
#xml #visual-studio #windows-phone-7
Вопрос:
мне нужно сохранить XML-файл с сервера .. я нашел код для загрузки, но я не понимаю, как сохранить файл в памяти.. Как я могу это сделать? Я ищу в Google, и у меня есть это:
public MainPage()
{
InitializeComponent();
WebClient downloader = new WebClient();
Uri xmlUri = new Uri("http://dl.dropbox.com/13258/file.xml", UriKind.Absolute);
downloader.DownloadStringCompleted = new DownloadStringCompletedEventHandler(Downloaded);
downloader.DownloadStringAsync(xmlUri);
}
void Downloaded(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Result == null || e.Error != null)
{
MessageBox.Show("There was an error downloading the xml-file");
}
else
{
MessageBox.Show("Download succeed");
}
}
Я хочу выполнить загрузку и сохранить ее в памяти.
Ответ №1:
Имеющийся у вас код загрузит файл с сервера. В Downloaded() вам нужно будет добавить некоторый код для сохранения только что загруженного файла.
В WP7 файлы сохраняются в изолированном хранилище. Это специфичная для приложения файловая система, которую вы можете использовать для сохранения любых файлов, которые вы хотите использовать в своем приложении. Следующая ссылка описывает, как можно использовать изолированное хранилище:
http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage-read-and-save-text-files
В вашем случае добавьте это к Else в Downloaded()
IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
using (StreamWriter writeFile = new StreamWriter(new IsolatedStorageFileStream("File.Xml", FileMode.OpenOrCreate, FileAccess.Write, myIsolatedStorage)))
{
writeFile.WriteLine(e.Result);
writeFile.Close();
}
Будьте осторожны с типом перечисления FileMode, в приведенном выше примере используется OpenOrCreate, который откроет существующий или создаст новый файл, т. Е. Перезапишет любой существующий файл с этим именем в корневой папке изолированного хранилища. Подробности об этом перечислении здесь:
http://msdn.microsoft.com/en-us/library/system.io.filemode.aspx