我想使用C#.NET将目录从一个位置移动到另一位置。我以这种简单的方式使用了Directory.Move甚至DirectoryInfo(与MoveTo一起使用):

// source is: "C:\Songs\Elvis my Man"
// newLocation is: "C:\Songs\Elvis"

try
{
    // Previous command was: Directory.Move(source, newLocation);
    DirectoryInfo dir = new DirectoryInfo(source);
    dir.MoveTo(newLocation);
}
catch (Exception e)
{
    Console.WriteLine("Error: "+ e.Message);
}


但是(两种情况下)正在执行的操作是将文件夹名称从“源”重命名为“ newLocation”

我期望什么?该文件夹“ Elvis my man”现在将位于“ Elvis”文件夹中。

发生了什么? “猫王我的男人”更改为“猫王”(已重命名)。如果目录“ Elvis”已经存在,则无法将其更改为“ Elvis”(因为他无法创建重复的名称),因此我得到了一个例外。

我究竟做错了什么??

非常感谢!!!

最佳答案

尽管这在命令行中可以移动文件,但在编程时,您需要提供完整的新名称。

因此,您需要将newLocation更改为“ C:\ Songs \ Elvis \ Elvis my Man”才能完成此工作。

09-27 02:33