Environment.CurrentDirectory Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static string CurrentDirectory { get; set; }

Property Value

Type: System.String

A string containing a directory path.

Exception Condition

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.

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

The following example demonstrates setting the CurrentDirectory property.

using System;
using System.IO;

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

      Console.WriteLine("Directory Info:   " + info.FullName);
// The example displays output like the following:
//        Directory Info:   C:\windows


for writing to files or directories in a set operation. Associated enumeration: SecurityPermissionFlag.UnmanagedCode


for access to the information in the path itself in a get operation. Associated enumeration: FileIOPermissionAccess.PathDiscovery

.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top