ruby 文件操作

一、 新建文件
  f=File.new(File.join("C:","Test.txt"), "w+")
  f.puts("I am Jack")
  f.puts("Hello World")

文件模式

"r" :Read-only. Starts at beginning of file (default mode).

"r+" :Read-write. Starts at beginning of file.

"w" :Write-only. Truncates existing file to zero length or creates a new file for writing.

"w+" :Read-write. Truncates existing file to zero length or creates a new file for reading and writing.

"a" :Write-only. Starts at end of file if file exists; otherwise, creates a new file for writing.

"a+" :Read-write. Starts at end of file if file exists; otherwise, creates a new file for reading and writing.

"b" :(DOS/Windows only.) Binary file mode. May appear with any of the key letters listed above

二、读取文件

  file=File.open(File.join("C:","Test.txt"),"r")
  file.each { |line| print "#{file.lineno}.", line }
  file.close

三、新建、删除、重命名文件

  File.new( "books.txt", "w" )
  File.rename( "books.txt", "chaps.txt" )
  File.delete( "chaps.txt" )

四、目录操作

1 创建目录
  Dir.mkdir("c:/testdir")
04 #删除目录
05 Dir.rmdir("c:/testdir")
07 #查询目录里的文件
08 p Dir.entries(File.join("C:","Ruby")).join(' ')
10 #遍历目录
11 Dir.entries(File.join("C:","Ruby")).each {
        |e| puts e
  }

1、ARGV and ARGF

ARGV

  ARGV << "cnblogslink.txt"
  #The gets method is a Kernel method that gets lines from ARGV
  print while gets
  p ARGV.class

ARGF

  while line = ARGF.gets
   print line
  end

2、文件信息查询

  #文件是否存在
  p File::exists?( "cnblogslink.txt" ) # => true
  #是否是文件
  p File.file?( "cnblogslink.txt" ) # => true
  #是否是目录
  p File::directory?( "c:/ruby" ) # => true
  p File::directory?( "cnblogslink.txt" ) # => false
  #文件权限
  p File.readable?( "cnblogslink.txt" ) # => true
  p File.writable?( "cnblogslink.txt" ) # => true
  p File.executable?( "cnblogslink.txt" ) # => false
  #是否是零长度
  p File.zero?( "cnblogslink.txt" ) # => false
  #文件大小 bytes
  p File.size?( "cnblogslink.txt" ) # => 74
  p File.size( "cnblogslink.txt" ) # => 74
  #文件或文件夹
  p File::ftype( "cnblogslink.txt" ) # => "file"
  #文件创建、修改、最后一次存取时间
  p File::ctime( "cnblogslink.txt" ) # => Sat Sep 19 08:05:07 +0800 2009
  p File::mtime( "cnblogslink.txt" ) # => Sat Sep 19 08:06:34 +0800 2009
  p File::atime( "cnblogslink.txt" ) # => Sat Sep 19 08:05:07 +0800 2009

3、查找文件

  puts "查找目录下所有文件及文件夹" 
  Dir["c:/ruby/*"].each {|x| 
        puts x
 
  puts "条件查询" 
  Dir.foreach('c:/ruby') { 
      |x| puts x if x != "." && x != ".."
  }
  puts "查找某一类型文件"
  Dir["*.rb"].each {|x| 
    puts x
   }
  puts "Open 查询"
  Dir.open('c:/ruby') { |d| d.grep /l/ }.each{|x| puts x}
  puts "---------------------------"      
  puts "正则表达式查询"
  Dir["c:/ruby/ruby/[rs]*"].each{|x| puts x} 
  puts "------------------------"
  Dir["c:/ruby/[^s]*"].each{|x| puts x}
  puts "------------------------"    
  Dir["c:/ruby/{ruby,li}*"].each{|x| puts x} 
  puts "------------------------"    
  Dir["c:/ruby/?b*"].each{|x| puts x}        
  puts "查找目录及子目录的文件"
  require 'find'     
  Find.find('./') { |path| puts path }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值