我想切换文件的扩展名。例如:
test_dir/test_file.jpg
.txt
应该给test_dir/test_file.txt
。
我还希望该解决方案可以处理具有两个扩展名的文件。
test_dir/test_file.ext1.jpg
应该.txt
应该给test_dir/test_file.ext1.txt
同样,在没有扩展名的文件上,它应该只添加扩展名。
test_dir/test_file
应该给.txt
test_dir/test_file.txt
我觉得这应该很简单,但我还没有找到一个简单的解决方案。这是我现在所拥有的。我认为它真的很难看,但它似乎确实有效。
def switch_ext(f, new_ext)
File.join(File.dirname(f), File.basename(f, File.extname(f))) + new_ext
end
你有没有更优雅的方法来做到这一点?我在互联网上看过,但我猜我错过了一些明显的东西。有什么需要注意的问题吗?我更喜欢不使用正则表达式的解决方案。