これが私の.rbファイルです。
puts "Renaming files..."
folder_path = "/home/papuccino1/Desktop/Test"
Dir.glob(folder_path + "/*").sort.each do |f|
filename = File.basename(f, File.extname(f))
File.rename(f, filename.capitalize + File.extname(f))
end
puts "Renaming complete."
ファイルは初期ディレクトリから.rbファイルがある場所に移動されます。移動せずに、その場でファイルの名前を変更したいと思います。
何をすべきか提案はありますか?
単純にどうですか:
File.rename(f, folder_path + "/" + filename.capitalize + File.extname(f))
Folder_pathはファイル名の一部である必要はありませんか?
puts "Renaming files..."
folder_path = "/home/papuccino1/Desktop/Test/"
Dir.glob(folder_path + "*").sort.each do |f|
filename = File.basename(f, File.extname(f))
File.rename(f, folder_path + filename.capitalize + File.extname(f))
end
puts "Renaming complete."
編集:それはマットが私と同じ答えを与えているように見えますが、わずかに異なる方法でのみです。
変更するファイルと同じ場所で実行している場合
File.rename("test.txt", "hope.txt")
正直なところ、私は時々Rubyを使用することの意味がわからない場合があります...シェルでファイル名が単に解釈される限り、おそらく必要はありません:
`mv test.txt hope.txt`
Linuxファイルシステムを使用している場合は、mv #{filename} newname
File.rename(old、new)を使用することもできます
こんにちは、私はRubyクラスを作成しました。これはディレクトリを反復し、これとその子から再帰的にファイルの名前を変更します。
ファイル名を適切に引用する準備ができていない限り、このパターンを使用しないでください。
`mv test.txt hope.txt`
確かに、「hope.txt」の代わりに「foo the bar.txt」というファイルがあると仮定すると、結果は期待したものにはなりません。