1. 程式人生 > >ruby Dir類

ruby Dir類

技術分享 img clas pwd reac http 使用 min 文件夾

類方法

1. Dir[pat]

  Dir::glob( pat)

返回一個數組,包含與指定的通配符模式 pat 匹配的文件名:

  • * - 匹配包含 null 字符串的任意字符串
  • ** - 遞歸地匹配任意字符串
  • ? - 匹配任意單個字符
  • [...] - 匹配封閉字符中的任意一個
  • {a,b...} - 匹配字符串中的任意一個
      
    # 獲取當前目錄中所有的文件名
    puts Dir.glob(*)
    
    # 獲取當前目錄中所有隱藏文件名
    puts Dir.glob(.*)
    
    # 獲取當前目錄中擴展名為.rb或者.txt的文件
    puts Dir.glob([*.rb, *.txt
    ]) puts Dir.glob(%w(*.rb *.txt)) # 或者這樣 # 獲取當前目錄及其子目錄下的所有文件, 遞歸查找目錄 puts Dir.glob(**/*) # 獲取當前目錄下所有後綴為.txt的文件名,遞歸查找目錄 puts Dir.glob(**/*.txt)

2. Dir::chdir( path)
  改變當前目錄。 

puts Dir.pwd #=> D:/Program Files/RubyMine 2017.test.text.5/workspace/dir
Dir.chdir(../) #=> 移動到上層路徑
puts Dir.pwd #
=> D:/Program Files/RubyMine 2017.test.text.5/workspace io = File.open(test.rb) #=> 打開D:/Program Files/RubyMine 2017.test.text.5/workspace目錄下的test.rb文件 io.close

3. Dir::getwd
  Dir::pwd

  返回當前目錄

4.  Dir::mkdir( path[, mode=0777])

  創建指定目錄,可指定目錄權限。如果創建失敗則返回 SystemCallError 錯誤

5. Dir::rmdir( path)

  Dir::unlink( path)

  Dir::delete( path)

  刪除空的文件夾,如果文件夾內有文件,則會有 SystemCallError 崩潰

6. Dir::new( path)
  Dir::open( path)
Dir::open( path) {| dir| ...}

  返回 path 的新目錄對象。如果 open 給出一個塊,則新目錄對象會傳到該塊,塊會在終止前關閉目錄對象

# 目錄內容的讀取
#test.text.while
dir = Dir.open(./)
while name = dir.read
  p name
end
dir.close

# 2.each
dir = Dir.open(./)
dir.each do |name|
  p name
end
dir.close

# 3.open(常用,使用該方法後可以省略close方法的調用)
Dir.open(./) do |dir|
  dir.each do |name|
    p name
  end
end

7. Dir::foreach( path) {| f| ...}

  為 path 指定的目錄中的每個文件執行一次塊

實例方法

技術分享圖片

ruby Dir類