DekGenius.com
[ Team LiB ] Previous Section Next Section

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

    [ Team LiB ] Previous Section Next Section