1. 程式人生 > Ruby 程式語言入門 >25 Ruby 的 Dir 類

25 Ruby 的 Dir 類

直到本章為止,我們所做的所有工作都涉及到處理記憶體中的資料。既然我們已經涵蓋了 Ruby 語言的所有基礎知識,是時候將我們的注意力轉向使用 Ruby 中的檔案和目錄了。本章中會對 Ruby 如何操作目錄做具體介紹。

1. Ruby 中更改目錄

啟動 Ruby 應用程式時,通常是從特定目錄完成的。通常,有必要從 Ruby 程式碼中導航到檔案系統上其他位置的目錄。Ruby 在 Dir 類中提供了許多有用的目錄導航方法。首先,標識當前目錄通常很有用。

這可以通過Ruby Dir類的pwd方法完成:

Dir.pwd => "/home/ruby"

我們同樣可以使用pwd檢視當前目錄:

> Dir
.pwd => "/home/ruby"

使用 Ruby Dir 類的 chdir 方法可以在 Ruby 中更改當前工作目錄。此方法將目標目錄的路徑作為引數:

Dir.chdir("/home/ruby/test")

2. 建立新目錄

Ruby 中的目錄建立由 Dir 類的 mkdir 方法處理。此方法將新目錄的路徑作為其引數。這可以是目錄的完整路徑,也可以是基於當前工作目錄的相對路徑:

Dir.mkdir("/home/ruby/temp")
=> 0

3. Ruby 中的目錄列表

導航到所需目錄後,通常需要獲取該目錄中包含的檔案列表。可以使用entries方法獲得這樣的列表。entries

方法將需要列出目錄的路徑作為引數,並返回包含該目錄中檔名的陣列:

Dir.entries(".")
=> ["techotopia_stats.jpg", "toolButton.png", ".", "..", "techotopia_stats_since_start.jpg", "music_728x90_1.jpg", 
"music_468x60_a.jpg", "Fedora_essentials.jpg"]

我們可以使用瞭解Ruby陣列中介紹的一些技術從陣列中提取元素:

dirListing.each { |file| puts file }


# ---- 輸出結果 ----
techotopia_stats.jpg toolButton.png . .. techotopia_stats_since_start.jpg music_728x90_1.jpg music_468x60_a.jpg Fedora_essentials.jpg

另外,我們可以利用Dir類的foreach方法獲得相同的結果:

Dir.foreach(".") { |file| puts file }

# ---- 輸出結果 ----
techotopia_stats.jpg
toolButton_IST.png
.
..
techotopia_stats_since_start.jpg
music_728x90_1.jpg
music_468x60_a.jpg
Fedora_essentials.jpg

4. 小結

本章介紹了 Ruby 中目錄處理的基礎知識,下一章我們會介紹檔案處理的概念。