Cómo escribe un flujo en un archivo XML en almacenamiento aislado
-
11-12-2019 - |
Pregunta
Estoy tratando de implementar la copia de seguridad de SkyDrive en mi aplicación.Todo está funcionando bien, excepto que no tengo idea de cómo salvar fácilmente Stream (con una copia de seguridad descargada desde SkyDrive) en almacenamiento aislado.
Sé que podría desertilizar el arroyo y lo guardarlo, pero no se complicó innecesariamente.
Entonces, aquí está mi problema:
Tengo un flujo con el archivo de SkyDrive y necesito guardarlo en AisleStorage como archivo 'Configures.XML'.
Por lo tanto, debo escribir el archivo 'Stream' en Configuración en Settings.xml en almacenamiento aislado
static void client_DownloadCompleted(object sender, LiveDownloadCompletedEventArgs e, string saveToPath)
{
Stream stream = e.Result; //Need to write this into IS
try
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(saveToPath, FileMode.Create))
{
//How to save it?
}
}
}...
¡Gracias!
Solución
Utilice el método Copyto () de SteamTo () http://msdn.microsoft.COM / EN-EEUU / Library / DD782932.ASPX
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(saveToPath, FileMode.Create))
{
stream.CopyTo(fileStream);
}
Otros consejos
El thung más rápido y más simple para hacer es copiar el bloque de bytes a bloque de una secuencia a la siguiente: consulte la respuesta aceptada en ¿Cómo copio los contenidos de una corriente a otra?
Sin embargo, si existe alguna posibilidad de que el flujo de red esté dañado o contenga datos no válidos, entonces podría valer la pena desercializar el flujo y validar antes de guardarlo.