Directory.SetCurrentDirectory(String) Metoda

Definicja

Ustawia bieżący katalog roboczy aplikacji do określonego katalogu.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)

Parametry

path
String

Ścieżka, do której jest ustawiony bieżący katalog roboczy.The path to which the current working directory is set.

Wyjątki

Wystąpił błąd we/wy.An I/O error occurred.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters with the GetInvalidPathChars() method.

Parametr path ma wartość null.path is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

Obiekt wywołujący nie ma wymaganego uprawnienia dostępu do kodu niezarządzanego.The caller does not have the required permission to access unmanaged code.

Nie znaleziono określonej ścieżki.The specified path was not found.

Nie znaleziono określonego katalogu.The specified directory was not found.

Przykłady

Poniższy przykład ilustruje sposób ustawiania bieżącego katalogu i wyświetlania katalogu głównego katalogu.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

Uwagi

Po zakończeniu działania aplikacji katalog roboczy jest przywracany do oryginalnej lokalizacji (katalog, w którym proces został uruchomiony).When the application terminates, the working directory is restored to its original location (the directory where the process was started).

Parametr path może określać informacje o ścieżce względnej lub bezwzględnej.The path parameter is permitted to specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

Spacje końcowe są usuwane z końca parametru path przed ustawieniem katalogu.Trailing spaces are removed from the end of the path parameter before setting the directory.

W parametrze path nie jest rozróżniana wielkość liter.The path parameter is not case-sensitive.

Jeśli konfigurujesz katalog na dysk z nośnikiem wymiennym (na przykład "E:" dla dysku flash USB), możesz określić, czy dysk jest gotowy przy użyciu właściwości 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.

Zabezpieczenia

FileIOPermission
do zapisu w plikach lub katalogach.for writing to files or directories. Skojarzone Wyliczenie: WriteAssociated enumeration: Write

SecurityPermission
Wywoływanie niezarządzanego kodu.for calling unmanaged code. Skojarzone Wyliczenie: UnmanagedCodeAssociated enumeration: UnmanagedCode

Dotyczy

Zobacz też