Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase IsolatedStorageFileStream

 

Publicado: octubre de 2016

Expone un archivo dentro del almacenamiento aislado.

Espacio de nombres:   System.IO.IsolatedStorage
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.MarshalByRefObject
    System.IO.Stream
      System.IO.FileStream
        System.IO.IsolatedStorage.IsolatedStorageFileStream

[ComVisibleAttribute(true)]
public class IsolatedStorageFileStream : FileStream

NombreDescripción
System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode)

Inicializa una nueva instancia de un objeto IsolatedStorageFileStream que proporciona acceso al archivo indicado por el parámetro path en el parámetro mode especificado.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, FileAccess)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo designado por el parámetro path, de la manera especificada en mode, y con el tipo de parámetro access solicitado.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, FileAccess, FileShare)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo indicado por el parámetro path en el parámetro mode especificado, con el parámetro access indicado y según el modo de uso compartido de archivos definido por el parámetro share.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, FileAccess, FileShare, Int32)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo designado por el parámetro path, de la manera especificada en mode, con el parámetro access especificado, con el modo de uso compartido de archivos definido por el parámetro share y con el valor de buffersize especificado.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, FileAccess, FileShare, Int32, IsolatedStorageFile)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo designado por el parámetro path, de la manera especificada en mode, con el parámetro access indicado, con el modo de uso compartido de archivos definido por el parámetro share, con el valor de buffersize especificado y en el contexto de IsolatedStorageFile que especifique el parámetro isf.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, FileAccess, FileShare, IsolatedStorageFile)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo designado por el parámetro path, de la manera especificada en mode, con el parámetro access indicado, con el modo de uso compartido de archivos definido por el parámetro share y en el contexto de IsolatedStorageFile que especifique el parámetro isf.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, FileAccess, IsolatedStorageFile)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo indicado por el parámetro path en el parámetro mode especificado, con el access especificado y en el contexto de IsolatedStorageFile que defina el parámetro isf.

System_CAPS_pubmethodIsolatedStorageFileStream(String, FileMode, IsolatedStorageFile)

Inicializa una nueva instancia de la clase IsolatedStorageFileStream y concede acceso al archivo designado por el parámetro path, de la manera especificada en mode y en el contexto de IsolatedStorageFile que defina el parámetro isf.

NombreDescripción
System_CAPS_pubpropertyCanRead

Obtiene un valor booleano que indica si se puede leer el archivo.(Invalida FileStream.CanRead).

System_CAPS_pubpropertyCanSeek

Obtiene un valor booleano que indica si se admiten las operaciones de búsqueda.(Invalida FileStream.CanSeek).

System_CAPS_pubpropertyCanTimeout

Obtiene un valor que determina si se puede agotar el tiempo de espera de la secuencia actual.(Heredado de Stream).

System_CAPS_pubpropertyCanWrite

Obtiene un valor booleano que indica si se puede escribir en el archivo.(Invalida FileStream.CanWrite).

System_CAPS_pubpropertyHandle

Obsoleto. Obtiene el controlador de archivo para el archivo encapsulado por el objeto IsolatedStorageFileStream actual. No se permite el acceso a esta propiedad en un objeto IsolatedStorageFileStream y se produce una excepción IsolatedStorageException.(Invalida FileStream.Handle).

System_CAPS_pubpropertyIsAsync

Obtiene un valor booleano que indica si se abrió el objeto IsolatedStorageFileStream de forma sincrónica o asincrónica.(Invalida FileStream.IsAsync).

System_CAPS_pubpropertyLength

Obtiene la longitud del objeto IsolatedStorageFileStream.(Invalida FileStream.Length).

System_CAPS_pubpropertyName

Obtiene el nombre del FileStream que se pasó al constructor.(Heredado de FileStream).

System_CAPS_pubpropertyPosition

Obtiene o establece la posición actual del objeto IsolatedStorageFileStream actual.(Invalida FileStream.Position).

System_CAPS_pubpropertyReadTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de lectura antes de que se agote el tiempo de espera.(Heredado de Stream).

System_CAPS_pubpropertySafeFileHandle

Obtiene un objeto SafeFileHandle que representa el identificador de archivos del sistema operativo correspondiente al archivo que el objeto IsolatedStorageFileStream actual encapsula.(Invalida FileStream.SafeFileHandle).

System_CAPS_pubpropertyWriteTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de escritura antes de que se agote el tiempo de espera.(Heredado de Stream).

NombreDescripción
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)
System_CAPS_pubmethodBeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)
System_CAPS_pubmethodClose()

Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a esta. En lugar de llamar a este método, asegúrese de que la secuencia se desecha correctamente.(Heredado de Stream).

System_CAPS_pubmethodCopyTo(Stream)

Lee los bytes de la secuencia actual y los escribe en otra secuencia de destino.(Heredado de Stream).

System_CAPS_pubmethodCopyTo(Stream, Int32)

Lee todos los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.(Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.(Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.(Heredado de Stream).

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer y el token de cancelación especificados.(Heredado de Stream).

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodCreateWaitHandle()

Obsoleto. Asigna un objeto WaitHandle.(Heredado de Stream).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Stream.(Heredado de Stream).

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa IsolatedStorageFileStream y libera los recursos administrados de forma opcional.(Invalida FileStream.Dispose(Boolean)).

System_CAPS_pubmethodEndRead(IAsyncResult)

Finaliza una solicitud de lectura asincrónica pendiente.(Invalida FileStream.EndRead(IAsyncResult)).

System_CAPS_pubmethodEndWrite(IAsyncResult)

Finaliza una escritura asincrónica.(Invalida FileStream.EndWrite(IAsyncResult)).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Garantiza que se liberen los recursos y se realicen otras operaciones de limpieza cuando el recolector de elementos no utilizados reclama FileStream.(Heredado de FileStream).

System_CAPS_pubmethodFlush()

Borra los búferes de esta secuencia y hace que todos los datos almacenados en los búferes se escriban en el archivo.(Invalida FileStream.Flush()).

System_CAPS_pubmethodFlush(Boolean)

Borra los búferes de esta secuencia, hace que todos los datos almacenados en los búferes se escriban en el archivo y borra también todos los búferes de archivos intermedios.(Invalida FileStream.Flush(Boolean)).

System_CAPS_pubmethodFlushAsync()

Borra asincrónicamente todos los búferes de esta secuencia y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.(Heredado de Stream).

System_CAPS_pubmethodFlushAsync(CancellationToken)

Borra asincrónicamente todos los búferes del flujo actual, hace que todos los datos almacenados en el búfer se escriban en el dispositivo subyacente y supervisa las solicitudes de cancelación.(Heredado de FileStream).

System_CAPS_pubmethodGetAccessControl()

Obtiene un objeto FileSecurity que encapsula las entradas de lista de control de acceso (ACL) del archivo descrito por el objeto FileStream actual.(Heredado de FileStream).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodLock(Int64, Int64)

Impide que otros procesos lean o escriban en la secuencia.(Invalida FileStream.Lock(Int64, Int64)).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del elemento actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodObjectInvariant()

Obsoleto. Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Proporciona compatibilidad con una clase Contract.(Heredado de Stream).

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Copia en una matriz bytes del actual objeto IsolatedStorageFileStream almacenado en el búfer.(Invalida FileStream.Read(Byte[], Int32, Int32)).

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Lee asincrónicamente una secuencia de bytes de la secuencia actual y avanza la posición en esta secuencia según el número de bytes leídos.(Heredado de Stream).

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32, CancellationToken)

Lee de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición dentro de la secuencia el número de bytes leídos y controla las solicitudes de cancelación.(Heredado de FileStream).

System_CAPS_pubmethodReadByte()

Lee un único byte del objeto IsolatedStorageFileStream en el almacenamiento aislado.(Invalida FileStream.ReadByte()).

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Establece la actual posición de este objeto IsolatedStorageFileStream en el valor especificado.(Invalida FileStream.Seek(Int64, SeekOrigin)).

System_CAPS_pubmethodSetAccessControl(FileSecurity)

Aplica las entradas de la lista de control de acceso (ACL) descritas por un objeto FileSecurity al archivo descrito por el objeto FileStream actual.(Heredado de FileStream).

System_CAPS_pubmethodSetLength(Int64)

Establece la longitud de este objeto IsolatedStorageFileStream en el parámetro value especificado.(Invalida FileStream.SetLength(Int64)).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa el objeto actual.(Heredado de Object).

System_CAPS_pubmethodUnlock(Int64, Int64)

Permite que otros procesos tengan acceso total o parcial a un archivo previamente bloqueado.(Invalida FileStream.Unlock(Int64, Int64)).

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Escribe un bloque de bytes en el objeto IsolatedStorageFileStream usando los datos leídos de una matriz de bytes.(Invalida FileStream.Write(Byte[], Int32, Int32)).

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Escribe asincrónicamente una secuencia de bytes en la secuencia actual y avanza la posición actual en esta secuencia según el número de bytes escritos.(Heredado de Stream).

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32, CancellationToken)

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos y controla las solicitudes de cancelación.(Heredado de FileStream).

System_CAPS_pubmethodWriteByte(Byte)

Escribe un único byte en el objeto IsolatedStorageFileStream.(Invalida FileStream.WriteByte(Byte)).

Use this class to read, write and create files in isolated storage.

Since this class extends T:System.IO.FileStream, you can use an instance of T:System.IO.IsolatedStorage.IsolatedStorageFileStream in most situations where a T:System.IO.FileStream might otherwise be used, such as to construct a T:System.IO.StreamReader or T:System.IO.StreamWriter.

This type implements the T:System.IDisposable interface. When you have finished using the type, you should dispose of it either directly or indirectly. To dispose of the type directly, call its M:System.IDisposable.Dispose method in a try/catch block. To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). For more information, see the “Using an Object that Implements IDisposable” section in the T:System.IDisposable interface topic.

System_CAPS_importantImportante

Isolated storage is not available for win8_appname_long apps. Instead, use the application data classes in the Windows.Storage namespaces included in the wrt API to store local data and files. For more information, see Application datahttp://go.microsoft.com/fwlink/?LinkId=229175 in the Windows Dev Center.

The following console application demonstrates how you can use T:System.IO.IsolatedStorage.IsolatedStorageFile and T:System.IO.IsolatedStorage.IsolatedStorageFileStream to write data to an Isolated Storage file. The user is requested to log in. If the user is a new user, a News URL and a Sports URL are recorded as personal preferences in Isolated Storage. If the user is a returning user, the user's current preferences are displayed. The code examples used throughout this namespace are presented in the context of this sample application. You can use the [<topic://cpgrfisolatedstorageutilitystoreadmexe>] utility to list and remove the Isolated Storage files that are created with this console application.

// This sample demonstrates methods of classes found in the System.IO IsolatedStorage namespace.
using System;
using System.IO;
using System.IO.IsolatedStorage;
using System.Security.Policy;
using Microsoft.Win32.SafeHandles;
using System.Security.Permissions;

[assembly: CLSCompliantAttribute(true)]

class ConsoleApp
{
    [STAThread]
    static void Main(string[] args)
    {

        // Prompt the user for their username.

        Console.WriteLine("Login:");

        // Does no error checking.
        LoginPrefs lp = new LoginPrefs(Console.ReadLine());

        if (lp.NewPrefs)
        {
            Console.WriteLine("Please set preferences for a new user.");
            GatherInfoFromUser(lp);

            // Write the new preferences to storage.
            double percentUsed = lp.SetPrefsForUser();
            Console.WriteLine("Your preferences have been written. Current space used is " + percentUsed.ToString() + " %");
        }
        else
        {
            Console.WriteLine("Welcome back.");

            Console.WriteLine("Your preferences have expired, please reset them.");
            GatherInfoFromUser(lp);
            lp.SetNewPrefsForUser();

            Console.WriteLine("Your news site has been set to {0}\n and your sports site has been set to {1}.", lp.NewsUrl, lp.SportsUrl);
        }
        lp.GetIsoStoreInfo();
        Console.WriteLine("Enter 'd' to delete the IsolatedStorage files and exit, or press any other key to exit without deleting files.");
        string consoleInput = Console.ReadLine();
        if (consoleInput.ToLower() == "d")
        {
            lp.DeleteFiles();
            lp.DeleteDirectories();
        }

    }

    static void GatherInfoFromUser(LoginPrefs lp)
    {
        Console.WriteLine("Please enter the URL of your news site.");
        lp.NewsUrl = Console.ReadLine();
        Console.WriteLine("Please enter the URL of your sports site.");
        lp.SportsUrl = Console.ReadLine();
    }
}
[SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)]
public class LoginPrefs
{
    public LoginPrefs(string myUserName)
    {
        userName = myUserName;
        myNewPrefs = GetPrefsForUser();
    }
    string userName;

    string myNewsUrl;
    public string NewsUrl
    {
        get { return myNewsUrl; }
        set { myNewsUrl = value; }
    }

    string mySportsUrl;
    public string SportsUrl
    {
        get { return mySportsUrl; }
        set { mySportsUrl = value; }
    }
    bool myNewPrefs;
    public bool NewPrefs
    {
        get { return myNewPrefs; }
    }

    private bool GetPrefsForUser()
    {
        try
        {

            // Retrieve an IsolatedStorageFile for the current Domain and Assembly.
            IsolatedStorageFile isoFile =
                IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
                IsolatedStorageScope.Assembly |
                IsolatedStorageScope.Domain,
                null,
                null);

            IsolatedStorageFileStream isoStream =
                new IsolatedStorageFileStream("substituteUsername",
                System.IO.FileMode.Open,
                System.IO.FileAccess.Read,
                 System.IO.FileShare.Read);

            // The code executes to this point only if a file corresponding to the username exists.
            // Though you can perform operations on the stream, you cannot get a handle to the file.

            try
            {

                SafeFileHandle aFileHandle = isoStream.SafeFileHandle;
                Console.WriteLine("A pointer to a file handle has been obtained. "
                    + aFileHandle.ToString() + " "
                    + aFileHandle.GetHashCode());
            }

            catch (Exception e)
            {
                // Handle the exception.
                Console.WriteLine("Expected exception");
                Console.WriteLine(e);
            }

            StreamReader reader = new StreamReader(isoStream);
            // Read the data.
            this.NewsUrl = reader.ReadLine();
            this.SportsUrl = reader.ReadLine();
            reader.Close();
            isoFile.Close();
            return false;
        }
        catch (System.IO.FileNotFoundException)
        {
            // Expected exception if a file cannot be found. This indicates that we have a new user.
            return true;
        }
    }
    public bool GetIsoStoreInfo()
    {
        // Get a User store with type evidence for the current Domain and the Assembly.
        IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
            IsolatedStorageScope.Assembly |
            IsolatedStorageScope.Domain,
            typeof(System.Security.Policy.Url),
            typeof(System.Security.Policy.Url));

        String[] dirNames = isoFile.GetDirectoryNames("*");
        String[] fileNames = isoFile.GetFileNames("*");

        // List directories currently in this Isolated Storage.
        if (dirNames.Length > 0)
        {
            for (int i = 0; i < dirNames.Length; ++i)
            {
                Console.WriteLine("Directory Name: " + dirNames[i]);
            }
        }

        // List the files currently in this Isolated Storage.
        // The list represents all users who have personal preferences stored for this application.
        if (fileNames.Length > 0)
        {
            for (int i = 0; i < fileNames.Length; ++i)
            {
                Console.WriteLine("File Name: " + fileNames[i]);
            }
        }

        isoFile.Close();
        return true;
    }

    public double SetPrefsForUser()
    {
        try
        {
            IsolatedStorageFile isoFile;
            isoFile = IsolatedStorageFile.GetUserStoreForDomain();

            // Open or create a writable file.
            IsolatedStorageFileStream isoStream =
                new IsolatedStorageFileStream(this.userName,
                FileMode.OpenOrCreate,
                FileAccess.Write,
                isoFile);

            StreamWriter writer = new StreamWriter(isoStream);
            writer.WriteLine(this.NewsUrl);
            writer.WriteLine(this.SportsUrl);
            // Calculate the amount of space used to record the user's preferences.
            double d = isoFile.CurrentSize / isoFile.MaximumSize;
            Console.WriteLine("CurrentSize = " + isoFile.CurrentSize.ToString());
            Console.WriteLine("MaximumSize = " + isoFile.MaximumSize.ToString());
            // StreamWriter.Close implicitly closes isoStream.
            writer.Close();
            isoFile.Dispose();
            isoFile.Close();
            return d;
        }
        catch (IsolatedStorageException ex)
        {
            // Add code here to handle the exception.
            Console.WriteLine(ex);
            return 0.0;
        }
    }

    public void DeleteFiles()
    {
        try
        {
            IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
                IsolatedStorageScope.Assembly |
                IsolatedStorageScope.Domain,
                typeof(System.Security.Policy.Url),
                typeof(System.Security.Policy.Url));

            String[] dirNames = isoFile.GetDirectoryNames("*");
            String[] fileNames = isoFile.GetFileNames("*");

            // List the files currently in this Isolated Storage.
            // The list represents all users who have personal
            // preferences stored for this application.
            if (fileNames.Length > 0)
            {
                for (int i = 0; i < fileNames.Length; ++i)
                {
                    // Delete the files.
                    isoFile.DeleteFile(fileNames[i]);
                }
                // Confirm that no files remain.
                fileNames = isoFile.GetFileNames("*");
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }

    }
    // This method deletes directories in the specified Isolated Storage, after first 
    // deleting the files they contain. In this example, the Archive directory is deleted. 
    // There should be no other directories in this Isolated Storage.
    public void DeleteDirectories()
    {
        try
        {
            IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
                IsolatedStorageScope.Assembly |
                IsolatedStorageScope.Domain,
                typeof(System.Security.Policy.Url),
                typeof(System.Security.Policy.Url));
            String[] dirNames = isoFile.GetDirectoryNames("*");
            String[] fileNames = isoFile.GetFileNames("Archive\\*");

            // Delete all the files currently in the Archive directory.

            if (fileNames.Length > 0)
            {
                for (int i = 0; i < fileNames.Length; ++i)
                {
                    // Delete the files.
                    isoFile.DeleteFile("Archive\\" + fileNames[i]);
                }
                // Confirm that no files remain.
                fileNames = isoFile.GetFileNames("Archive\\*");
            }


            if (dirNames.Length > 0)
            {
                for (int i = 0; i < dirNames.Length; ++i)
                {
                    // Delete the Archive directory.
                }
            }
            dirNames = isoFile.GetDirectoryNames("*");
            isoFile.Remove();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }
    public double SetNewPrefsForUser()
    {
        try
        {
            byte inputChar;
            IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
                IsolatedStorageScope.Assembly |
                IsolatedStorageScope.Domain,
                typeof(System.Security.Policy.Url),
                typeof(System.Security.Policy.Url));

            // If this is not a new user, archive the old preferences and 
            // overwrite them using the new preferences.
            if (!this.myNewPrefs)
            {
                if (isoFile.GetDirectoryNames("Archive").Length == 0)
                    isoFile.CreateDirectory("Archive");
                else
                {

                    IsolatedStorageFileStream source =
                        new IsolatedStorageFileStream(this.userName, FileMode.OpenOrCreate,
                        isoFile);
                    // This is the stream from which data will be read.
                    Console.WriteLine("Is the source file readable? " + (source.CanRead ? "true" : "false"));
                    Console.WriteLine("Creating new IsolatedStorageFileStream for Archive.");

                    // Open or create a writable file.
                    IsolatedStorageFileStream target =
                        new IsolatedStorageFileStream("Archive\\ " + this.userName,
                        FileMode.OpenOrCreate,
                        FileAccess.Write,
                        FileShare.Write,
                        isoFile);
                    Console.WriteLine("Is the target file writable? " + (target.CanWrite ? "true" : "false"));
                    // Stream the old file to a new file in the Archive directory.
                    if (source.IsAsync && target.IsAsync)
                    {
                        // IsolatedStorageFileStreams cannot be asynchronous.  However, you
                        // can use the asynchronous BeginRead and BeginWrite functions
                        // with some possible performance penalty.

                        Console.WriteLine("IsolatedStorageFileStreams cannot be asynchronous.");
                    }

                    else
                    {
                        Console.WriteLine("Writing data to the new file.");
                        while (source.Position < source.Length)
                        {
                            inputChar = (byte)source.ReadByte();
                            target.WriteByte(inputChar);
                        }

                        // Determine the size of the IsolatedStorageFileStream
                        // by checking its Length property.
                        Console.WriteLine("Total Bytes Read: " + source.Length);

                    }

                    // After you have read and written to the streams, close them.
                    target.Close();
                    source.Close();
                }
            }

            // Open or create a writable file with a maximum size of 10K.
            IsolatedStorageFileStream isoStream =
                new IsolatedStorageFileStream(this.userName,
                FileMode.OpenOrCreate,
                FileAccess.Write,
                FileShare.Write,
                10240,
                isoFile);
            isoStream.Position = 0;  // Position to overwrite the old data.
            StreamWriter writer = new StreamWriter(isoStream);
            // Update the data based on the new inputs.
            writer.WriteLine(this.NewsUrl);
            writer.WriteLine(this.SportsUrl);

            // Calculate the amount of space used to record this user's preferences.
            double d = isoFile.CurrentSize / isoFile.MaximumSize;
            Console.WriteLine("CurrentSize = " + isoFile.CurrentSize.ToString());
            Console.WriteLine("MaximumSize = " + isoFile.MaximumSize.ToString());
            // StreamWriter.Close implicitly closes isoStream.
            writer.Close();
            isoFile.Close();

            return d;
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
            return 0.0;
        }
    }
}

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: