如何使用包含/字符的Ruby重命名文件?

Jan*_*nis 1 ruby rename file special-characters

我写了一个小的Ruby命令行应用程序,用于在我的Mac硬盘上保持电视节目的组织.鉴于电视剧集的性质,有一些剧集包括/角色.

在Mac上,文件系统实际上允许我编写这个文件,如果我手动重命名文件,/一切都很好.

Ruby File.rename在我的脚本中运行的那一刻然而我只是得到一个No such file or directory错误,因为Ruby试图/将文件名作为应该存在的文件夹读取.

这是一个例子:

输出路径是 /TV/Showname/Season 1/Showname - 1x07 - 5/1.mp4

现在不是寻找文件夹/Showname - 1x07 - 5/并写入其中的1.mp4文件,我怎么能告诉ruby简单地取文件名(Showname - 1x07 - 5/1.mp4)并将其写入Season 1文件夹中?

谢谢阅读.

Rus*_*ell 5

这是一个奇怪的,但因为反斜杠用作文件分隔符,它将被转换为Ruby使用的文件名中的冒号.因此,要重命名文件,请使用冒号替换名称中的正斜杠.

所以你会写下这样的东西:

File.rename("Showname - 1x07 - 5:1.mp4", "/TV/Showname/Season 1/Showname - 1x07 - 5:1.mp4")
Run Code Online (Sandbox Code Playgroud)