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)

property String^ CurrentDirectory {
	static String^ get();
	static void set(String^ value);

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 namespace System;
using namespace System::IO;

void main()
      // Change the directory to %WINDIR%
      Environment::CurrentDirectory = Environment::GetEnvironmentVariable( "windir" );
      DirectoryInfo^ info = gcnew DirectoryInfo( "." );

      Console::WriteLine("Directory Info:   {0}", 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