我编写了一个小的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
文件夹原样是什么?
感谢阅读。
答案 0 :(得分:5)
这很奇怪,但是因为反斜杠用作文件分隔符,所以它被转换为Ruby使用的文件名中的冒号。因此,要重命名文件,请用冒号替换名称中的正斜杠。
所以你会写一些类似的东西:
File.rename("Showname - 1x07 - 5:1.mp4", "/TV/Showname/Season 1/Showname - 1x07 - 5:1.mp4")