IsolatedStorageFile.CreateDirectory 方法

在独立存储范围中创建目录。

**命名空间:**System.IO.IsolatedStorage
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Sub CreateDirectory ( _
    dir As String _
)
用法
Dim instance As IsolatedStorageFile
Dim dir As String

instance.CreateDirectory(dir)
public void CreateDirectory (
    string dir
)
public:
void CreateDirectory (
    String^ dir
)
public void CreateDirectory (
    String dir
)
public function CreateDirectory (
    dir : String
)

参数

  • dir
    要在独立存储范围中创建的目录的相对路径。

异常

异常类型 条件

IsolatedStorageException

当前代码没有足够的权限创建独立存储目录。

ArgumentNullException

目录路径为 空引用(在 Visual Basic 中为 Nothing)。

备注

创建的目录最初不包含任何文件。创建文件和目录 示例说明 CreateDirectory 方法的用法。

示例

下面的代码示例说明了 CreateDirectory 方法。有关此示例的完整上下文,请参见 IsolatedStorageFile 概述。

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.
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.
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.
      

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

IsolatedStorageFile 类
IsolatedStorageFile 成员
System.IO.IsolatedStorage 命名空间