Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Environment.CurrentDirectory Property

Definition

Namespace:
System
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.Extensions.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
Environment.cs
Source:
Environment.cs
Source:
Environment.cs
Source:
Environment.cs
Source:
Environment.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Gets or sets the fully qualified path of the current working directory.

public:
 static property System::String ^ CurrentDirectory { System::String ^ get(); void set(System::String ^ value); };
public static string CurrentDirectory { get; set; }
static member CurrentDirectory : string with get, set
Public Shared Property CurrentDirectory As String

Property Value

The directory path.

Exceptions

Attempted to set to an empty string ("").

Attempted to set to null.

An I/O error occurred.

Attempted to set a local path that cannot be found.

The caller does not have the appropriate permission.

Examples

The following example demonstrates setting the CurrentDirectory property.

using System;
using System.IO;

public class Example
{
 public static void Main()
 {
 if (Environment.OSVersion.Platform == PlatformID.Win32NT)
 {
 // Change the directory to %WINDIR%
 Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir");
 DirectoryInfo info = new DirectoryInfo(".");

 Console.WriteLine("Directory Info: " + info.FullName);
 }
 else
 {
 Console.WriteLine("This example runs on Windows only.");
 }
 }
}
// The example displays output like the following on a .NET implementation running on Windows:
// Directory Info: C:\windows
// The example displays the following output on a .NET implementation on Unix-based systems:
// This example runs on Windows only.
open System
open System.IO

if Environment.OSVersion.Platform = PlatformID.Win32NT then
 // Change the directory to %WINDIR%
 Environment.CurrentDirectory <- Environment.GetEnvironmentVariable "windir"
 
 let info = DirectoryInfo "."

 printfn $"Directory Info: {info.FullName}"
else
 printfn "This example runs on Windows only."
// The example displays output like the following on a .NET implementation running on Windows:
// Directory Info: C:\windows
// The example displays the following output on a .NET implementation on Unix-based systems:
// This example runs on Windows only.
Imports System.IO

Module Example
 Public Sub Main()
 If Environment.OSVersion.Platform = PlatformID.Win32NT Then
 ' Change the directory to %WINDIR%
 Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir")
 Dim info As New DirectoryInfo(".")
 Console.WriteLine("Directory Info: " + info.FullName)
 Else
 Console.WriteLine("This example runs on Windows only.")
 End If
 End Sub
End Module
' The example displays output like the following on a .NET implementation running on Windows:
' Directory Info: C:\windows
' The example displays the following output on a .NET implementation on Unix-based systems:
' This example runs on Windows only.

Remarks

By definition, if this process starts in the root directory of a local or network drive, the value of this property is the drive name followed by a trailing slash (for example, "C:\"). If this process starts in a subdirectory, the value of this property is the drive and subdirectory path, without a trailing slash (for example, "C:\mySubDirectory").

Applies to


Feedback

Was this page helpful?