Recipe 11.12 Renaming a Directory
Problem
You
need to rename a directory.
Solution
Unfortunately, there is no specific rename method that can be used to
rename a directory. However, you can use the instance
MoveTo method of the
DirectoryInfo class or the static
Move method of the
Directory class instead. The static
Move method can be used to rename a directory in
the following manner:
public void DemonstrateRenameDir(string originalName, string newName)
{
try
{
Directory.CreateDirectory(originalName);
// "rename" it
Directory.Move(originalName, newName);
// clean up after ourselves
Directory.Delete(newName);
}
catch(IOException ioe)
{
// most likely given the directory exists or isn't empty
Console.WriteLine(ioe.ToString( ));
}
catch(Exception e)
{
// catch any other exceptions
Console.WriteLine(e.ToString( ));
}
}
This code creates a directory using the
originalName parameter, renames it to the
value supplied in the newName parameter
and removes it once complete.
The
instance MoveTo method of the
DirectoryInfo class can also be used to rename a
directory in the following manner:
public void DemonstrateRenameDir (string originalName, string newName)
{
try
{
DirectoryInfo dirInfo = new DirectoryInfo(originalName);
// create the dir
dirInfo.Create( );
// "rename" it
dirInfo.MoveTo(newName);
// clean up after ourselves
dirInfo.Delete(false);
}
catch(IOException ioe)
{
// most likely given the directory exists or isn't empty
Console.WriteLine(ioe.ToString( ));
}
catch(Exception e)
{
// catch any other exceptions
Console.WriteLine(e.ToString( ));
}
}
This code creates a directory using the
originalName parameter, renames it to the
value supplied in the newName parameter
and removes it once complete.
Discussion
The Move and MoveTo methods
allow a directory to be moved to a different location. However, when
the path remains unchanged up to the directory that will have its
name changed, the Move methods act as a
Rename method.
See Also
See the "Directory Class" and
"DirectoryInfo Class" topics in the
MSDN documentation
|