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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章