0
string sourceDir = @"E:\Images\3\2\1";
string destDir = @"E:\Images\33\22\11";
Directory.Move(sourceDir, destinationDir);

我必须重命名使用 Directory.Move() 的目录,但给了我错误:

Could not find a part of the path.
4

3 回答 3

3

您需要确保将文件夹移动到 aleady 的位置存在。为了方便起见,您可以执行以下操作。

基本上,您需要确保将文件移动到的路径存在。

string sourceDir = @"E:\Images\3\2\1";
string destName = "1";
string destDir = @"E:\Images\33\22\";

Directory.CreateDirectory(destDir); // Create the location path
Directory.Move(sourceDir, Path.Combine(destDir + destName));

编辑:添加了基本的错误处理。

这是一个带有基本错误处理的示例,以确保源目录和目标目录都存在。

string sourceDir = @"E:\Images\3\2\1";
string destName = "1";
string destDir = @"E:\Images\33\22\";

if (!Directory.Exists(sourceDir))
{
    Console.WriteLine("Source Directory does not exist.");
    Console.Read();
    //return; // Handle issue where Source Dir does not exist.
}

if (!Directory.Exists(destDir))
{
    Console.WriteLine("Destination Directory does exist. Created.");
    Directory.CreateDirectory(destDir);
}

if (Directory.Exists(Path.Combine(destDir + destName)))
{
    Console.WriteLine("Target Destination already exist.");
    Console.Read();
    return;
}

Directory.Move(sourceDir, Path.Combine(destDir + destName));
Console.Read();
于 2013-03-26T12:31:05.870 回答
2

您要移动到的文件夹在您移动之前应该存在。

调用Directory.Create([path to target folder]) 之前Directory.Move

于 2013-03-26T12:25:05.857 回答
2

似乎在string destDir = @"E:\Images\33\22\11";Images\33\22\ 中不存在。您不能使用 来创建新的子目录Directory.Move,因此E:\Images\33\22\必须已经存在。

请参阅MSDN

于 2013-03-26T12:27:11.563 回答