私はスクリプトで長いパスをよく使用しますが、Windows を使用しているため、バックスラッシュの代わりにスラッシュを使用して、これらの長いパスを nix スタイルに変換する必要があります。エクスプローラーでは反対のことをもう一度行う必要があるため、その後そのパスをコピーしてそのフォルダーに移動すると、面倒なことは何もありません。
そこで、変換を行う関数を作成しました。これで、コピーして Ruby を満足させることができる windowspaths を使用できるようになりました。
質問: ここでよりエレガントなソリューションはありますか? 2 番目の gsub が最初にダブル \ を処理するのは好きではなく、最後に \ を処理したい (現在は不可能)。この関数は、ネットワーク UNC (\..) およびローカル ドライブパス (c:..) を処理できる必要があります。
class String
def path
self.gsub('\\','/').gsub(/^\//,'//')
end
end
path = '\\server\share\folder'.path
Dir.glob(path+'**/*') do |file|
puts file
end
#=>
#//server/share/folder/file1.txt
#//server/share/folder/file2.txt