我正在尝试同时从文件夹及其子文件夹中删除空格,但收到该错误消息。这是我的代码:
Directory.Move(@path, @path.Replace(" ", String.Empty));
其中路径是 C:\Users\meli\Desktop\New folder\New folder 2
当“新文件夹”没有空格时,我只能重命名子文件夹“新文件夹2”。
如何同时更改两者以删除空格?
谢谢!
答案 0 :(得分:1)
如何同时更改两者以删除空格?
你不能,你必须发出几个命令
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 也可以用于目录;无论是文件还是目录,它都返回最后一个分隔符之后的字符。
我们通过仅从最后一个文件夹名称中去除空格并保留路径的其余部分来形成一个新的目标名称,通过 path.combine 父目录加上无空格的子文件夹
最后我们“进入一个文件夹”,最终导致我们到达根目录并停止