2010-11-28 64 views
1

我正在嘗試對Ruby腳本進行一些小改動,以便在運行時指定文件夾位置。在Dir.glob中使用變量

雖然我不是Ruby程序員,但我找不到正確的語法,我確信這將是一件容易的事情。

puts "Enter folder name and press enter: " 
folder = gets 

files = Dir.glob("folder/[0-100]*.txt"); # What is the correct syntax to use, so the content of the variable folder will be used? 

puts files 

回答

1

要插入變量(或任何Ruby表達式)轉換成字符串,就可以使用#{}

Dir.glob("#{folder}/[0-100]*.txt") 

另外請注意,由gets返回的字符串將在有一個換行符(\n)結束,當然這在文件夾名稱中是無效的。所以你必須使用chomp方法來消除這一點。

+0

如果我直接在Dir.glob中寫入文件夾名稱,如下所示:Dir.glob(「system_logs/[0-100] *。txt」)將所有日誌文件的列表寫出來,但使用Dir。 glob(「#{folder}/[0-100] *。txt」)和給定的文件夾名相同,沒有任何內容被寫出來? – jet8832 2010-11-28 16:38:42