1

Mac のハードドライブでテレビ番組を整理するために使用する小さな Ruby コマンド ライン アプリを作成しました。TV エピソード タイトルの性質上、/キャラクターを含むエピソードがあります。

Mac を使用している場合、ファイル システムにより、実際にこのファイルを書き込むことができます。その/文字を含むファイルの名前を手動で変更すると、すべて問題ありません。

Ruby がスクリプトで実行された瞬間、Rubyはファイル名の を存在するはずのフォルダーとして読み取ろうとするためFile.rename、単純にエラーが発生します。No such file or directory/

以下に例を示します。

出力パスは/TV/Showname/Season 1/Showname - 1x07 - 5/1.mp4

フォルダーを探してその中のファイルに/Showname - 1x07 - 5/書き込むのではなく、単にファイル名 ( ) を1.mp4取り、それをそのままフォルダーに書き込むように ruby​​ に指示するにはどうすればよいでしょうか?Showname - 1x07 - 5/1.mp4Season 1

読んでくれてありがとう。

4

1 に答える 1

5

これは奇妙なものですが、バックスラッシュはファイル区切りとして使用されるため、Ruby が使用するファイル名ではコロンに変換されます。したがって、ファイルの名前を変更するには、名前のスラッシュをコロンに置き換えます。

したがって、次のように記述します。

File.rename("Showname - 1x07 - 5:1.mp4", "/TV/Showname/Season 1/Showname - 1x07 - 5:1.mp4")
于 2012-08-18T11:32:00.320 に答える