Ruby常用文件操作方法

   这篇文章主要介绍了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")

  #删除目录

  Dir.rmdir("c:/testdir")

  #查询目录里的文件

  p Dir.entries(File.join("C:","Ruby")).join(' ')

  #遍历目录

  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 }

  3、查询目录及子目录文件

  代码如下:

  require "find"

  Find.find("/etc/passwd", "/var/spool/lp1", ".") do |f|

  Find.prune if f == "."

  puts f

  end

  原型:ref.find( [ aName ]* ) {| aFileName | block }

  prune:Skips the current file or directory, restarting the loop with the next entry. If the current file is a directory, that directory will not be recursively entered. Meaningful only within the block associated with Find::find.

  4、文件比较 复制等

  代码如下:

  require 'ftools'

  File.copy 'testfile', 'testfile1' » true

  File.compare 'testfile', 'testfile1' » true

时间: 2025-01-25 05:56:22

Ruby常用文件操作方法的相关文章

Ruby常用文件操作方法_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+"

Ruby常用文件操作代码实例

  这篇文章主要介绍了Ruby常用文件操作代码实例,如新建文件.输出文件内容.IO操作.输出文件路径.stringio使用等内容,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6

Windows 7系统常用快捷操作方法

第一.显示桌面,更顺手 在Win 7中,微软将"显示桌面"的按钮放置在桌面屏幕右下角,时间的右侧,一改以往XP系统的操作习惯,点击即可快速显示桌面,更加方便用户操作. 而且将鼠标停留在显示桌面的按钮上,片刻之后即可预览显示桌面,用户可以在不用点击显示桌面,即可预览桌面内容和图标. 第二.壁纸更换,更智能 在Win 7中,桌面显示功能得到了显著增强,可以设置变换桌面风格,无需安装壁纸更换工具,轻松实现多张壁纸以幻灯片的形式轮换显示. 操作方法:在桌面空白处,右键点选"个性化&q

Excel中怎么制作表格并添加常用文件夹

  Excel中怎么制作表格并添加常用文件夹: 1.其实使用模板的使用是比较简单的,比如我们有一个表格如何把它保存成表格.点击另存为. 2.弹出保存的界面框,选择我们要保存的位置,这个时候我们选择了位置,在选择文件类型,模板 3.注意看这里的模板的文件名是ett,这个时候也可以区分一下xls文件名. 4.我们先打开一下这个模板文件,修改完成之后,我们在保存文件为xls模式就可以了. 5.我们可以看到这2个文件,模板是不会被修改的. 6.同时我们可以设置保存在常用文件夹,这时我们添加常用文件夹.点

PHP文件操作方法汇总

  这篇文章主要介绍了PHP文件操作方法汇总的相关资料,需要的朋友可以参考下 在data文件中写入数据: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/29 * Time: 17:05 */ header("Content-type: text/html; charset=utf-8"); //write data $

Excel中添加自己常用文件夹动画教程

<Excel2003入门动画教程35.Excel中添加自己常用文件夹>. 演示动画 操作步骤 在Excel的"打开"和"另存为"对话框中的右侧区域中有一些文件夹的快捷方式,能不能将一些常用文件夹添加到这个地方呢? 在"打开"或"另存为"对话框中,定位到需要添加的文件夹中,然后按工具栏上的"工具"按钮,在随后弹出的下拉列表中,选择"添加到我的位置"选项. 以后我们打开Excel

收集的多个ruby遍历文件夹代码实例

  这篇文章主要介绍了收集的多个ruby遍历文件夹代码实例,本文总结了4个代码片段,小编推荐最后一个方法,因为它很简洁优雅,需要的朋友可以参考下 一.遍历文件夹下所有文件,输出文件名 代码如下: def traverse_dir(file_path) if File.directory? file_path Dir.foreach(file_path) do |file| if file !="." and file !=".." traverse_dir(file

Ruby遍历文件夹同时计算文件的md5sum

  这篇文章主要介绍了Ruby遍历文件夹同时计算文件的md5sum,本文直接给出实现代码,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/ruby -w # require 'digest/md5'   if ARGV.empty? puts "usgae: #$0 path" exi

excel模板怎么制作表格并添加常用文件夹?

  有的时候我们需要使用固定的表格进行不同的编辑,这个时候我们就可以把我们的模板保存起来想用的时候我们就可以使用了. 1.其实使用模板的使用是比较简单的,比如我们有一个表格如何把它保存成表格.点击另存为. 2.弹出保存的界面框,选择我们要保存的位置,这个时候我们选择了位置,在选择文件类型,模板 3.注意看这里的模板的文件名是ett,这个时候也可以区分一下xls文件名. 4.我们先打开一下这个模板文件,修改完成之后,我们在保存文件为xls模式就可以了. 5.我们可以看到这2个文件,模板是不会被修改