将多个子文件夹移动到不同的目录并保留文件夹名称

本文关键字:文件夹 保留 移动 | 更新日期: 2023-09-27 18:15:58

请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.");
    }
}

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

任何帮助都将非常感激!

将多个子文件夹移动到不同的目录并保留文件夹名称

我想你想要这个:

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

试一下:

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

请确保在新旧文件路径中都包含要移动的目录名。

一般来说,在大多数情况下,DirectoryInfo和FileInfo比Directory和File更有用。