重命名为带波浪号的文件夹

Posted

技术标签:

【中文标题】重命名为带波浪号的文件夹【英文标题】:Rename to folder with tilde symbol 【发布时间】:2018-12-20 21:01:21 【问题描述】:

我知道Directory.Move(source, destination) 重命名文件夹的方法。但是当我在开头重命名带有~ 符号的目标文件夹时,出现错误。

System.NotSupportedException: 给定路径的格式不受支持。

这是我的代码:

string oldFolderPath = @"C:\Old";
string newFolderPath = "~" + oldFolderPath;
Directory.Move(oldFolderPath, newFolderPath);

System.IO.Path.InvalidPathChars中,以下字符无效: " < > |

它没有列出波浪号,那我该怎么办?非常感谢。

【问题讨论】:

~ 用于 8.3 路径(如 dos,8 个字符 + 3 个扩展名),Windows 内部将其用于 8.3 文件夹/文件名 > 8 个字符的名称。我想这就是你不能使用它的原因。 可能 Path.Combine 是你需要在这里使用的 ***.com/questions/7348768/… 【参考方案1】:

波浪号在文件夹名称中完全有效。您的代码示例没有显示 demoPath 的值,但是,由于波浪号在文件夹名称中有效,您可能正在执行一些操作,例如将其附加到路径的开头而不是您想要的位置。

例如不喜欢这个:~C:\OldC:\~Old

【讨论】:

啊哈。我忘了,应该是C:\~Old 而不是~C:\Old。非常感谢!!!

以上是关于重命名为带波浪号的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何将文件重命名为子目录

如何在 Linux 上将所有文件夹和文件重命名为小写?

Linux 重命名

正则表达式 - 将文件重命名为文件名中的最高分辨率

linux 重命名文件和文件夹

linux 重命名文件和文件夹