Directory.SetCurrentDirectory(String) Метод

Определение

Устанавливает заданный каталог в качестве текущего рабочего каталога приложения.Sets the application's current working directory to the specified directory.

public:
 static void SetCurrentDirectory(System::String ^ path);
public static void SetCurrentDirectory (string path);
static member SetCurrentDirectory : string -> unit
Public Shared Sub SetCurrentDirectory (path As String)

Параметры

path
String

Путь, который должен быть назначен рабочему каталогу.The path to which the current working directory is set.

Исключения

Ошибка ввода/вывода.An I/O error occurred.

path представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов.path is a zero-length string, contains only white space, or contains one or more invalid characters. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().You can query for invalid characters with the GetInvalidPathChars() method.

path имеет значение null.path is null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.The specified path, file name, or both exceed the system-defined maximum length.

У вызывающего объекта отсутствует необходимое разрешение для доступа к неуправляемому коду.The caller does not have the required permission to access unmanaged code.

Указанный путь не найден.The specified path was not found.

Указанный каталог не найден.The specified directory was not found.

Примеры

В следующем примере показано, как задать текущий каталог и отобразить корневой каталог.The following example illustrates how to set the current directory and display the directory root.

// This sample shows how to set the current directory and how to determine
// the root directory.
using namespace System;
using namespace System::IO;
int main()
{
   
   // Create string for a directory. This value should be an existing directory
   // or the sample will throw a DirectoryNotFoundException.
   String^ dir = "C:\\test";
   try
   {
      
      //Set the current directory.
      Directory::SetCurrentDirectory( dir );
   }
   catch ( DirectoryNotFoundException^ e ) 
   {
      Console::WriteLine( "The specified directory does not exist. {0}", e );
   }

   
   // Print to console the results.
   Console::WriteLine( "Root directory: {0}", Directory::GetDirectoryRoot( dir ) );
   Console::WriteLine( "Current directory: {0}", Directory::GetCurrentDirectory() );
}

// The output of this sample depends on what value you assign to the variable dir.
// If the directory c:\test exists, the output for this sample is:
// Root directory: C:\
// Current directory: C:\test
// This sample shows how to set the current directory and how to determine
// the root directory.
using System;
using System.IO;

namespace IOSamples
{
  public class DirectoryRoot
  {
    public static void Main()
    {
    // Create string for a directory. This value should be an existing directory
    // or the sample will throw a DirectoryNotFoundException.
      string dir = @"C:\test";		
      try
      {
          //Set the current directory.
          Directory.SetCurrentDirectory(dir);
      }
      catch (DirectoryNotFoundException e)
      {
          Console.WriteLine("The specified directory does not exist. {0}", e);
      }
    // Print to console the results.
      Console.WriteLine("Root directory: {0}", Directory.GetDirectoryRoot(dir));
      Console.WriteLine("Current directory: {0}", Directory.GetCurrentDirectory());
    }
  }
}
// The output of this sample depends on what value you assign to the variable dir.
// If the directory c:\test exists, the output for this sample is:
// Root directory: C:\
// Current directory: C:\test

' This sample shows how to set the current directory and how to determine
' the root directory.
Imports System.IO

Public Class DirectoryRoot
   
   Public Shared Sub Main()
      ' Create string for a directory. This value should be an existing directory
      ' or the sample will throw a DirectoryNotFoundException.
      Dim dir As String = "C:\test"
      Try
         'Set the current directory.
         Directory.SetCurrentDirectory(dir)
      Catch e As DirectoryNotFoundException
         Console.WriteLine("The specified directory does not exist. {0}", e)
      End Try
      ' Print to console the results.
      Console.WriteLine("Root directory: {0}", Directory.GetDirectoryRoot(dir))
      Console.WriteLine("Current directory: {0}", Directory.GetCurrentDirectory())
   End Sub
End Class
' The output of this sample depends on what value you assign to the variable dir.
' If the directory c:\test exists, the output for this sample is:
' Root directory: C:\
' Current directory: C:\test

Комментарии

После завершения работы приложения рабочий каталог восстанавливается в исходное расположение (каталог, в котором был запущен процесс).When the application terminates, the working directory is restored to its original location (the directory where the process was started).

Для параметра path разрешено указывать сведения относительного или абсолютного пути.The path parameter is permitted to specify relative or absolute path information. Сведения об относительном пути интерпретируется как относительно текущего рабочего каталога.Relative path information is interpreted as relative to the current working directory. Сведения о получении текущего рабочего каталога см. в разделе GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Конечные пробелы удаляются из конца параметра path перед настройкой каталога.Trailing spaces are removed from the end of the path parameter before setting the directory.

Параметр path не учитывает регистр.The path parameter is not case-sensitive.

Если вы настраиваете каталог на диск со съемным носителем (например, "E:" для USB-накопителя), можно определить, готов ли диск к использованию свойства IsReady.If you are setting the directory to a drive with removable media (for example, "E:" for a USB flash drive), you can determine whether the drive is ready by using the IsReady property.

Безопасность

FileIOPermission
для записи в файлы или каталоги.for writing to files or directories. Связанное перечисление: WriteAssociated enumeration: Write

SecurityPermission
для вызова неуправляемого кода.for calling unmanaged code. Связанное перечисление: UnmanagedCodeAssociated enumeration: UnmanagedCode

Применяется к

Дополнительно