我编写了一个小的 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
文件夹?
感谢阅读。
最佳答案
这很奇怪,但是因为反斜杠被用作文件分隔符,它在 Ruby 使用的文件名中被转换为冒号。因此,要重命名您的文件,请将名称中的正斜杠替换为冒号。
所以你会这样写:
File.rename("Showname - 1x07 - 5:1.mp4", "/TV/Showname/Season 1/Showname - 1x07 - 5:1.mp4")
关于ruby - 如何使用包含/字符的 Ruby 重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018000/