DirectoryInfo::MoveTo Method (String^)

 
System_CAPS_noteNote

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

Moves a DirectoryInfo instance and its contents to a new path.

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

public:
void MoveTo(
	String^ destDirName
)

Parameters

destDirName
Type: System::String^

The name and path to which to move this directory. The destination cannot be another disk volume or a directory with the identical name. It can be an existing directory to which you want to add this directory as a subdirectory.

Exception Condition
ArgumentNullException

destDirName is null.

ArgumentException

destDirName is an empty string (''").

IOException

An attempt was made to move a directory to a different volume.

-or-

destDirName already exists.

-or-

You are not authorized to access this path.

-or-

The directory being moved and the destination directory have the same name.

SecurityException

The caller does not have the required permission.

DirectoryNotFoundException

The destination directory cannot be found.

This method throws an IOException if, for example, you try to move c:\mydir to c:\public, and c:\public already exists. You must specify "c:\\public\\mydir" as the destDirName parameter, or specify a new directory name such as "c:\\newdir".

This method permits moving a directory to a read-only directory. The read/write attribute of neither directory is affected.

For a list of common I/O tasks, see Common I-O Tasks.

The following example demonstrates moving a directory.

using namespace System;
using namespace System::IO;
int main()
{

   // Make a reference to a directory.
   DirectoryInfo^ di = gcnew DirectoryInfo( "TempDir" );

   // Create the directory only if it does not already exist.
   if (  !di->Exists )
      di->Create();


   // Create a subdirectory in the directory just created.
   DirectoryInfo^ dis = di->CreateSubdirectory( "SubDir" );

   // Move the main directory. Note that the contents move with the directory.
   if (  !Directory::Exists( "NewTempDir" ) )
      di->MoveTo( "NewTempDir" );

   try
   {

      // Attempt to delete the subdirectory. Note that because it has been
      // moved, an exception is thrown.
      dis->Delete( true );
   }
   catch ( Exception^ ) 
   {

      // Handle this exception in some way, such as with the following code:
      // Console::WriteLine(S"That directory does not exist.");
   }


   // Point the DirectoryInfo reference to the new directory.
   //di = new DirectoryInfo(S"NewTempDir");
   // Delete the directory.
   //di->Delete(true);
}

FileIOPermission

for reading and writing files and directories and for access to the destination directory. Security action: Demand. Associated enumerations: FileIOPermissionAccess::Read, FileIOPermissionAccess::Write

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top
Show: