IsolatedStorageFile.CreateDirectory(String) Metodo

Definizione

Crea una directory nell'ambito dello spazio di memorizzazione isolato.Creates a directory in the isolated storage scope.

public:
 void CreateDirectory(System::String ^ dir);
public void CreateDirectory (string dir);
member this.CreateDirectory : string -> unit
Public Sub CreateDirectory (dir As String)

Parametri

dir
String

Percorso relativo della directory da creare nell'ambito dello spazio di memorizzazione isolato.The relative path of the directory to create within the isolated storage scope.

Eccezioni

Il codice corrente non dispone di autorizzazioni sufficienti per creare una directory dello spazio di memorizzazione isolato.The current code has insufficient permissions to create isolated storage directory.

Il percorso della directory è null.The directory path is null.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato il metodo CreateDirectory.The following code example demonstrates the CreateDirectory method. Per il contesto completo di questo esempio, vedere la Panoramica di IsolatedStorageFile.For the complete context of this example, see the IsolatedStorageFile overview.

double SetNewPrefsForUser()
{
   try
   {
      Byte inputChar;
      IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetStore( static_cast<IsolatedStorageScope>(IsolatedStorageScope::User | IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain), System::Security::Policy::Url::typeid, System::Security::Policy::Url::typeid );
      
      // If this is not a new user, archive the old preferences and 
      // overwrite them using the new preferences.
      if (  !this->NewPrefs )
      {
         if ( isoFile->GetDirectoryNames( "Archive" )->Length == 0 )
                     isoFile->CreateDirectory( "Archive" );
         else
         {
            
            // This is the stream to which data will be written.
            IsolatedStorageFileStream^ source = gcnew IsolatedStorageFileStream( this->userName,FileMode::OpenOrCreate,isoFile );
            
            // This is the stream from which data will be read.
            Console::WriteLine( "Is the source file readable?  {0}", (source->CanRead ? (String^)"true" : "false") );
            Console::WriteLine( "Creating new IsolatedStorageFileStream for Archive." );
            
            // Open or create a writable file.
            IsolatedStorageFileStream^ target = gcnew IsolatedStorageFileStream( String::Concat("Archive\\",this->userName),FileMode::OpenOrCreate,FileAccess::Write,FileShare::Write,isoFile );
            
            Console::WriteLine( "Is the target file writable? {0}", (target->CanWrite ? (String^)"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( (Byte)source->ReadByte() );
               }
               
               // Determine the size of the IsolatedStorageFileStream
               // by checking its Length property.
               Console::WriteLine( "Total Bytes Read: {0}", source->Length.ToString() );
               
            }
            
            // After you have read and written to the streams, close them.
            target->Close();
            source->Close();
         }
      }
      
      // Open or create a writable file, no larger than 10k
      IsolatedStorageFileStream^ isoStream = gcnew IsolatedStorageFileStream( this->userName,FileMode::OpenOrCreate,FileAccess::Write,FileShare::Write,10240,isoFile );
      
      isoStream->Position = 0; // Position to overwrite the old data.
      
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.
Public Function SetNewPrefsForUser() As Double
    Try
        Dim inputChar As Byte
        Dim isoFile As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
            IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, _
            GetType(System.Security.Policy.Url), GetType(System.Security.Policy.Url))

        ' If this is not a new user, archive the old preferences and 
        ' overwrite them using the new preferences.
        If Not Me.myNewPrefs Then
            If isoFile.GetDirectoryNames("Archive").Length = 0 Then
                isoFile.CreateDirectory("Archive")
            Else

                Dim source As New IsolatedStorageFileStream(Me.userName, FileMode.OpenOrCreate, isoFile)
                Dim canWrite, canRead As Boolean
                ' This is the stream from which data will be read.
                If source.CanRead Then canRead = True Else canRead = False
                Console.WriteLine("Is the source file readable? " & canRead)
                Console.WriteLine("Creating new IsolatedStorageFileStream for Archive.")
                ' Open or create a writable file.
                Dim target As New IsolatedStorageFileStream("Archive\ " & Me.userName, _
                     FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write, isoFile)
                ' This is the stream to which data will be written.
                If target.CanWrite Then canWrite = True Else canWrite = False
                Console.WriteLine("Is the target file writable? " & canWrite)
                target.SetLength(0)  'rewind the target file

                ' Stream the old file to a new file in the Archive directory.
                If source.IsAsync And target.IsAsync Then
                    ' 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 = CByte(source.ReadByte())
                        target.WriteByte(inputChar)
                    End While

                    ' Determine the size of the IsolatedStorageFileStream
                    ' by checking its Length property.
                    Console.WriteLine(("Total Bytes Read: " & source.Length))
                End If

                ' After you have read and written to the streams, close them.	
                target.Close()
                source.Close()
            End If
        End If
        ' Open or create a writable file with a maximum size of 10K.
        Dim isoStream As New IsolatedStorageFileStream(Me.userName, FileMode.OpenOrCreate, _
            FileAccess.Write, FileShare.Write, 10240, isoFile)
        isoStream.SetLength(0) 'Position to overwrite the old data.

Commenti

La directory creata inizialmente non contiene file.The created directory initially contains no files. Se la directory esiste già, il metodo CreateDirectory restituisce senza creare una nuova directory.If the directory already exists, the CreateDirectory method returns without creating a new directory. Nella [Procedura: Creare file e directory nello spazio di memorizzazione isolato @ no__t-0 esempio illustra l'uso del metodo CreateDirectoryThe How to: Create Files and Directories in Isolated Storage example demonstrates the use of the CreateDirectory method

Sicurezza

IsolatedStorageFilePermission
per accedere all'ambito dello spazio di memorizzazione isolato.for accessing the isolated storage scope.

ReflectionPermission
Quando viene richiamato ad associazione tardiva tramite meccanismi come InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]).when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Enumerazione associata: MemberAccessAssociated enumeration: MemberAccess

Si applica a

Vedi anche