lunes, 7 de diciembre de 2009

Almacenamiento Aislado (isolated storage)

El almacenamiento aislado (isolated storage en ingles) es un sistema de archivos separado del sistema de archivos estandar en el cual podemos leer o escribir archivos en nuestras aplicaciones .net. Ademas, este tipo de almacenamiento es privado y aislado por usuario, dominio y ensamblado, lo que nos ofrece un nivel extra de seguridad que no es ofrecido por el Sistema Operativo.



El acceso a un archivo del almacenamiento aislado esta restringido al usuario que lo creo, ademas del ensamblado.

Las 3 principales clases que provee el framework .net para trabajar con almacenamiento aislado son:

  • IsolatedStorageFile
  • IsolatedStorageFileStream
  • IsolatedStorageStream

IsolatedStorageFile:

Provee la administración del almacenamiento aislado, cada sistema de almacenamiento es implementado como un sencillo archivo en el sistema de archivos.


IsolatedStorageFileStream:

Nos da la funcionalidad para leer y escribir en el almacenamiento aislado


IsolatedStorageStream:

Una clase para el manejo de excepciones relacionadas con el almacenamiento aislado.

Trabajando con almacenamiento aislado


trabajar con almacenamiento aislado es muy similar que hacerlo de la forma convencional. Pero debemos:
-Usar el namespace System.IO.IsolatedStorage
-declarar un objeto del tipo IsolatedStorageFile


static void Main(string[] args)
{
/**************ESCRITURA EN EL ARCHIVO**********************/
System.IO.IsolatedStorage.IsolatedStorageFile aislado; //declaramos el objeto
aislado = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForAssembly(); //obtenemos un almacenamiento aislado por ensamblado

System.IO.IsolatedStorage.IsolatedStorageFileStream stream; //declaramos el stream
stream = new System.IO.IsolatedStorage.IsolatedStorageFileStream("prueba.txt", System.IO.FileMode.Create, aislado);

System.IO.StreamWriter escribirArchivo = new System.IO.StreamWriter(stream);    //creamos el objeto que servira para escribir el archivo

escribirArchivo.Write("Este es un texto de prueba: Hello world");   //escribimos en el archivo

escribirArchivo.Close();    //cerramos el archivo

/**************LECTURA DEL ARCHIVO**********************/
aislado = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForAssembly();
stream = new System.IO.IsolatedStorage.IsolatedStorageFileStream("prueba.txt", System.IO.FileMode.Open, aislado);

System.IO.StreamReader leerArchivo = new System.IO.StreamReader(stream);

Console.Write(leerArchivo.ReadToEnd());
leerArchivo.Close();
Console.ReadKey();
}

Nota: en el código no importe el namespace System.IO ni el namespace System.IO.IsolatedStorage para que pudieran observar el namespace al que pertenece cada clase utilizada.

No hay comentarios:

Publicar un comentario