Переместите несколько подпапок в другой каталог и сохраните имена папок - PullRequest
0 голосов
/ 27 ноября 2011

Пожалуйста, мог бы эксперт 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 ]

2 голосов
/ 27 ноября 2011

Попробуйте это:

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

Просто убедитесь, что вы включили имя каталога для перемещения как в старые И новые пути к файлам.

В общем, DirectoryInfo и FileInfo гораздо большев большинстве случаев полезнее, чем Directory и File.

2 голосов
/ 27 ноября 2011

Полагаю, вы хотите это:

Directory.Move(subCurrentDirectory, 
    Path.Combine(
        newDirectory, 
        Path.GetFileName(subCurrentDirectory)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...