如果文件名只一個連字符:
path = '/Users/greg/Desktop/test'
target = 'rb'
def get_files(path, target)
Dir.chdir(path) do
return Dir["*#{ target }*"].map{ |f| f.split('-').first }
end
end
puts get_files(path, 'y08iPnx_ktA')
# >> This_is_a_very_good_movie
如果有多個連字符:
def get_files(path, target)
Dir.chdir(path) do
return Dir["*#{ target }*"].map{ |f| f.split(target).first.chop }
end
end
puts get_files(path, 'y08iPnx_ktA')
# >> This_is_a_very_good_movie
如果代碼假定從包含文件的目錄中運行,那麼Dir.chdir
可以刪除,簡化事情之一:
puts Dir["*#{ target }*"].map{ |f| f.split('-').first }
# >> This_is_a_very_good_movie
或
puts Dir["*#{ target }*"].map{ |f| f.split(target).first.chop }
# >> This_is_a_very_good_movie
'mymovie1',那是哪裏來的?或者你想要「This_is_a_very_good_movie」? – Qtax 2011-06-11 16:47:16
文件名可以包含多個連字符,還是在添加散列之前規範化名稱以刪除連字符? – 2011-06-11 18:09:05