c#文件移动(文件已经被另一个进程使用)
本文关键字:文件 进程 另一个 移动 | 更新日期: 2023-09-27 17:49:41
我正在把文件从一个文件夹移动到另一个文件夹。如果我想把整个文件夹移动到那个文件夹下的另一个文件夹,我就做不到。但如果我把它移到外面,就没问题了。如何将我的文件夹移动到该文件夹中的文件夹?
给出错误
if (System.IO.Directory.Exists(PhysicalPath))
{
string sourcePath = "c:''copypath''";
string targetPath = "c:''copypath''abc''";
System.IO.Directory.Move(sourcePath, targetPath);
}
this works fine
if (System.IO.Directory.Exists(PhysicalPath))
{
string sourcePath = "c:''copypath''";
string targetPath = "c:''abc''";
System.IO.Directory.Move(sourcePath, targetPath);
}
尝试将"c:'copypath'"转换为"c:'copypath'abc'"将不起作用,因为它没有意义。
如果你移动了copypath文件夹,那么它将不再存在,那么它的目标文件夹(它是一个子文件夹)如何存在?
您可以将"c:'copypath'"的所有子文件移动到"c:'copypath'abc'"中,这不会导致问题(再次假设您不试图将abc复制到自身中)。
将抛出错误,因为您正在尝试移动其自己的子目录中的目录。这在windows中也会给出错误…
如果你想复制而不是移动,你可以这样做。
if (System.IO.Directory.Exists(PhysicalPath))
{
string sourcePath = "c:''copypath''";
string targetPath = "c:''copypath''abc''";
System.IO.Directory.Copy(sourcePath, targetPath);
}
也许您需要移动文件夹内的所有文件,而不是文件夹本身?
我猜源路径将被使用(复制文件),因为目标路径是源路径的子文件夹,它可能会给你"当前被另一个进程错误使用"。