C# &引用;找不到路径的一部分“;C语言中的错误消息#

C# &引用;找不到路径的一部分“;C语言中的错误消息#,c#,file-io,C#,File Io,我试图同时从文件夹及其子文件夹中删除空间,但收到错误消息。这是我的代码: Directory.Move(@path, @path.Replace(" ", String.Empty)); 其中路径为C:\Users\meli\Desktop\New folder\New folder 2 我只能在“新建文件夹”没有空格时重命名子文件夹“新建文件夹2” 如何同时更改这两个选项以删除空白 谢谢 如何同时更改这两个选项以删除空白 你不能,你必须发出几个命令 string p =

我试图同时从文件夹及其子文件夹中删除空间,但收到错误消息。这是我的代码:

Directory.Move(@path, @path.Replace(" ", String.Empty));
其中路径为C:\Users\meli\Desktop\New folder\New folder 2

我只能在“新建文件夹”没有空格时重命名子文件夹“新建文件夹2”

如何同时更改这两个选项以删除空白

谢谢

如何同时更改这两个选项以删除空白

你不能,你必须发出几个命令

string p = @"c:\my path\with spaces";

p=p.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);

while(p != Path.GetPathRoot(p)){
  string dest = Path.Combine(Path.GetDirectoryName(p), Path.GetFileName(p.Replace(" ", "")));

  if(!p.Equals(dest, StringComparison.CurrentCultureIgnoreCase))
    Directory.Move(p, dest);
  p = Path.GetDirectoryName(p);
}
这将占用整个路径并向后工作,首先切掉导致path.GetX出现问题的任何后续目录分隔符

Path.GetFileName也可以用于目录;它返回最后一个分隔符后的字符,而不管它是文件还是目录

我们通过将最后一个文件夹名中的空格剥离出来,并按路径单独保留路径的其余部分,从而形成一个新的目标名称。将父目录与无空格的子文件夹合并


最后,我们“进入一个文件夹”,这最终导致我们到达根目录并停止

逻辑地思考一下:您要求操作系统将
C:\Users\meli\Desktop\New folder\New folder 2
移动到
C:\Users\meli\Desktop\Newfolder\Newfolder2
。如果
C:\Users\meli\Desktop\Newfolder
不存在,它如何在其中创建一个名为Newfolder2的文件夹?您应该从另一个方向工作,首先重命名父目录,然后删除子目录,然后重命名它们的子目录,等等。非常感谢您,尽管我收到以下消息System.IO.IOException:“源和目标路径必须不同。”在
directory.Move(p,dest)行中
我是个新手,但你帮助我理解并在中放入
if
以检测源路径和目标路径是否不同;只有在他们不同意的情况下才进行移动谢谢,这真的很有帮助!