将多个子文件夹移动到其他目录并保留文件夹名称

时间:2011-11-27 19:46:11

标签: c# file-io

请C#专家帮助解决一个简单的问题,由于一些奇怪的原因,我似乎无法解决这个问题?我正在尝试将当前目录中的多个子文件夹移动到新目录并保留子文件夹名称,如下所示:

public string currentDirectory = System.Environment.GetEnvironmentVariable("LOCALAPPDATA") + @"\Test\CurrentFolder\";

public string newDirectory = System.Environment.GetEnvironmentVariable("LOCALAPPDATA") + @"\Test\NewFolder\";

private void btnMoveFolder_Click(object sender, RoutedEventArgs e)
{
    string[] subdirectoryEntries = Directory.GetDirectories(currentDirectory);
    try
    {
        foreach (string subCurrentDirectory in subdirectoryEntries)
        {
            Directory.Move(subCurrentDirectory, newDirectory);

        }
    }
    catch (System.Exception)
    {
        Log("Problem with moving the directory.");
    }
}

目前,我似乎只能移动一个文件夹而不是所有文件夹。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

我想你想要这个:

Directory.Move(subCurrentDirectory, 
    Path.Combine(
        newDirectory, 
        Path.GetFileName(subCurrentDirectory)));

答案 1 :(得分:2)

试试这个:

DirectoryInfo subfolder = new DirectoryInfo(@"OLDPATH\DirectoryToMove");
subfolder.MoveTo(@"NEWPATH\DirectoryToMove");

只需确保包含要在旧文件路径和新文件路径中移动的目录名称。

通常,在大多数情况下,DirectoryInfo和FileInfo比目录和文件更有用。