我正在将文件从一个文件夹移动到另一个文件夹。如果我尝试将整个文件夹移动到该特定文件夹中的文件夹,我就无法这样做。但如果我把它移到外面就可以了。如何将文件夹移动到该文件夹中的文件夹?
这会产生错误
if (System.IO.Directory.Exists(PhysicalPath))
{
string sourcePath = "c:\\copypath\\";
string targetPath = "c:\\copypath\\abc\\";
System.IO.Directory.Move(sourcePath, targetPath);
}
这很好用
if (System.IO.Directory.Exists(PhysicalPath))
{
string sourcePath = "c:\\copypath\\";
string targetPath = "c:\\abc\\";
System.IO.Directory.Move(sourcePath, targetPath);
}
答案 0 :(得分:5)
尝试“c:\ copypath \”进入“c:\ copypath \ abc \”将无效,因为它没有意义。
如果您移动copypath文件夹,那么它将不再存在,那么它的目标文件夹(它是一个子文件夹)将如何存在?
您可以将“c:\ copypath \”的所有子文件移动到“c:\ copypath \ abc \”中,这不会导致问题(再次假设您不尝试将abc复制到本身)。
答案 1 :(得分:2)
它抛弃了错误,因为您正在尝试在其自己的子目录中移动目录。这也会在Windows中产生错误......
如果您尝试复制而不是移动,则可以将此作为替代方式...
if (System.IO.Directory.Exists(PhysicalPath))
{
string sourcePath = "c:\\copypath\\";
string targetPath = "c:\\copypath\\abc\\";
System.IO.Directory.Copy(sourcePath, targetPath);
}
答案 2 :(得分:1)
也许您需要移动文件夹中的所有文件,而不是文件夹本身?
答案 3 :(得分:0)
我想源路径将被使用(复制文件),并且因为目标路径是源路径的子文件夹,它可能会给你“当前被另一个进程错误使用”。