Ruby 的 Dir 類
直到本章為止,我們所做的所有工作都涉及到處理內(nèi)存中的數(shù)據(jù)。既然我們已經(jīng)涵蓋了 Ruby 語言的所有基礎(chǔ)知識,是時候?qū)⑽覀兊淖⒁饬D(zhuǎn)向使用 Ruby 中的文件和目錄了。本章中會對 Ruby 如何操作目錄做具體介紹。
1. Ruby 中更改目錄
啟動 Ruby 應(yīng)用程序時,通常是從特定目錄完成的。通常,有必要從 Ruby 代碼中導(dǎo)航到文件系統(tǒng)上其他位置的目錄。Ruby 在 Dir
類中提供了許多有用的目錄導(dǎo)航方法。首先,標(biāo)識當(dāng)前目錄通常很有用。
這可以通過Ruby Dir
類的pwd
方法完成:
Dir.pwd => "/home/ruby"
我們同樣可以使用pwd
查看當(dāng)前目錄:
> Dir.pwd
=> "/home/ruby"
使用 Ruby Dir
類的 chdir
方法可以在 Ruby 中更改當(dāng)前工作目錄。此方法將目標(biāo)目錄的路徑作為參數(shù):
Dir.chdir("/home/ruby/test")
2. 創(chuàng)建新目錄
Ruby 中的目錄創(chuàng)建由 Dir
類的 mkdir
方法處理。此方法將新目錄的路徑作為其參數(shù)。這可以是目錄的完整路徑,也可以是基于當(dāng)前工作目錄的相對路徑:
Dir.mkdir("/home/ruby/temp")
=> 0
3. Ruby 中的目錄列表
導(dǎo)航到所需目錄后,通常需要獲取該目錄中包含的文件列表??梢允褂?code>entries方法獲得這樣的列表。entries
方法將需要列出目錄的路徑作為參數(shù),并返回包含該目錄中文件名的數(shù)組:
Dir.entries(".")
=> ["techotopia_stats.jpg", "toolButton.png", ".", "..", "techotopia_stats_since_start.jpg", "music_728x90_1.jpg",
"music_468x60_a.jpg", "Fedora_essentials.jpg"]
我們可以使用了解Ruby數(shù)組中介紹的一些技術(shù)從數(shù)組中提取元素:
dirListing.each { |file| puts file }
# ---- 輸出結(jié)果 ----
techotopia_stats.jpg
toolButton.png
.
..
techotopia_stats_since_start.jpg
music_728x90_1.jpg
music_468x60_a.jpg
Fedora_essentials.jpg
另外,我們可以利用Dir
類的foreach
方法獲得相同的結(jié)果:
Dir.foreach(".") { |file| puts file }
# ---- 輸出結(jié)果 ----
techotopia_stats.jpg
toolButton_IST.png
.
..
techotopia_stats_since_start.jpg
music_728x90_1.jpg
music_468x60_a.jpg
Fedora_essentials.jpg
4. 小結(jié)
本章介紹了 Ruby 中目錄處理的基礎(chǔ)知識,下一章我們會介紹文件處理的概念。