ruby 對文件的操作

文件路徑

require 'pathname'
path1=Pathname.new(File.dirname(__FILE__)).realpath.parent  #獲取文件所在父目錄的絕對路徑
path2=Pathname.new(File.dirname(__FILE__)).realpath  #獲取文件所在目錄的絕對路徑
$:.unshift File.join(File.dirname(__FILE__),'..') #加載文件所在目錄的父目錄的相對路徑至ruby全局變量
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__),'..'))) #加載文件所在目錄的父目錄的絕對路徑至ruby全局變量

讀取一個文件,將其打印出來:

lines = File.open('dom.js').readlines
puts "======================="
lines.each{ |line| puts(line)}

或者:

File.open("dom.js")do|file|
  whileline = file.gets
    puts line
  end
end

後一種能確保文件用完後被關閉。

向目標文件追加內容:

file = File.open("dom.js","a")
file.puts "//this is new content. "
file.close

但這有時可能出現不能添加中文內容的情況,報“invalid multibyte char (US-ASCII) ”錯誤,我們就要在當前腳本的最上面添加這麼一下注釋,就沒事了,即

# coding: utf-8
file = File.open("dom.js","a")
file.puts "//這是新追加的內容. "
file.close

創建一個新文件,並往其裏面添加內容

# coding: utf-8
file = File.new("new_file.js","w");
file << 'var a = "test";'
file.close;

文件重命名:

# coding: utf-8
File.rename("new_file.js","new.js")#原來的文件名,新的文件名

刪除文件

# coding: utf-8
File.delete("new.js")#原來的文件名

目錄操作:

# coding: utf-8
Dir.mkdir("new")#創建一個新文件夾
Dir.rmdir("new")#刪除指定的文件夾

將一個文件拷貝到目標目標:

require 'fileutils'
FileUtils.cp 'new.js', 'new'

將一個文件移動到目標目標:

require 'fileutils'
FileUtils.mv 'new.js', 'new'

判斷一個文件是否存在

require 'fileutils'
puts FileTest::exist?(file_path)
#false 不存在  true 存在


發佈了19 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章