类方法

  路径相关:

  • File.basename(filename <, suffix>) -> string
    返回给定文件名 filename 的最后一部分。如果有 suffix 参数,且它出现在 filename 的末尾。 则它将被删除。通过使用 ".*" 可以去除任意扩展名

    File.basename('/home/test/ruby.rb')  #=> ruby.rb
    File.basename('/home/test/ruby.rb', '.rb') #=> ruby
    File.basename('/home/test/ruby.rb', '.*') #=> ruby

  • File.dirname(filename) -> filename
    返回给定文件 filename 中除了最后一部分的其余部分
    File.dirname('/home/test/ruby.rb') #=> /home/test
    File.dirname('ruby.rb') #=> .

  • File.extname(path) -> string
    返回文件的扩展名(文件名 path 中句点后面的部分)
    File.extname('test.rb')  #=> .rb
    File.extname('a/b/c/test.rb') #=> .rb
    File.extname('text') #=> ""

  • File.expand_path(filename, <dirstring>) -> filename
    转换路径名为绝对路径,除非有dirstring参数,相对路径是相对于进程的当前工作目录而言的,如果给定了 dirstring ,
    那么它将作为路径的起点.给定的路径可能以~开头,它将被扩展为进程主人的主目录(环境变量HOME必须正确设置)
    ~user 扩展为给定用户的主目录

    File.expand_path('test') #=> D:/Program Files/RubyMine 2017.1.5/workspace/File/test
    File.expand_path('test', 'D:/')  #=> D:/test

  • File.split(filename) -> array
    把给定的字符串分割成目录和文件,并返回包含它们的具有两个元素的数组

    File.split('/home/test/ruby.rb') #=> ['/home/test', 'ruby.rb']
    File.split('ruby.rb')  #=> ['.', 'ruby.rb']

  • File.join(<string>+) -> filename
    使用 File::SEPARATOR 连接字符串,并返回该新结果字符串

    File.join('user', 'mail', 'ruby.rb') #=> user/mail/ruby.rb

  • File.rename(oldname, newname) -> 0
    重命名给定的文件或者目录为新名字,如果不能成功重命名,则引发SystemCallError

    File.rename('1.txt', '2.txt')

  • File.directory?(path) -> true or false
    如果给定的文件是目录,则返回true,否则返回false

    File.directory?('.') #-> true

  • File.exist?(filename) -> true or false
    如果给定的文件或目录存在,则返回true

    File.exist?('test.txt') #-> true

  • File.file?(filename) -> true or false
    如果给定的文件是一个普通文件(不是设备文件,目录,管道,socket等等),则返回true

    File.file?('test.txt') #=> true
    File.file?('.')  #=> false

  • File.socket?(filename) -> true or false
    如果给定的文件是socket文件则返回true,如果不是或者操作系统不支持这种特性则返回false

    File.socket?('test.txt') #=> false

  时间

  • File.atime(filename) -> time
    返回一个包含文件最后访问时间的Time对象,如果文件未被访问过,则返回纪元时间
  • File.ctime(filename) -> time
    返回一个含有给定文件最后状态修改时间的Time对象
  • File.mtime(filename) -> time
    返回包含文件被修改时间的一个Time对象

  文件创建

  • File.new(filename, modestring='r') -> file
    File.new(filename <, modenum <, permission>>) -> file
    File.new(fd <, modenum <, permission>>) -> file
    根据模式modestring(默认为r)打开名为filename的文件(或关联已经打开的文件描述符fd)并返回一个新的File对象

    File.new('afile', 'r')
    File.new('bfile', 'w+')
    File.new('cfile', File::CREAT|File::TRUNC|File::RDWR)

  • File.open(filename, modestring='r') -> file
    File.open(filename <, modenum <, permission>>) -> file
    File.open(fd <, modenum <, permission>>) -> file
    File.open(filename, modestring='r'){|file| block } -> obj
    File.open(filename <, modenum <, permission>>){|file| block } -> obj
    File.open(fd <, modenum <, permission>>){|file| block } -> obj

    如果没有关联的block,那么open和File.new同义,如果提供了代码block,他将传递file作为参数,
    并且当block执行结束时文件将被自动关闭,这种情况下,File.open返回block的值

  • File.readable?(filename) -> true or false
    如果本进程的有效用户ID可以读给定的文件,则返回true

    File.readable?('test.txt') #=> true

  • File.writable?(filename) -> true or false
    如果给定的文件可以被进程的有效用户ID写,则返回true

    File.writable?('test.txt') #-> true

  • File.size(filename) -> int
    返回文件的字节大小

    File.size('test.txt') #=> 9

  • File.size?(filename) -> int or nil
    如果给定文件的长度为0,则返回nil,否则返回其大小。在测试的条件语句中很有用

  

实例方法

最后了解一下于文件操作相关的库:

find,tempfile,fileutils,pathname

参考:https://ninghao.net/blog/4097

     http://www.cnblogs.com/cnblogsfans/archive/2009/09/17/1568804.html

转载于:https://www.cnblogs.com/wf0117/p/9043495.html

ruby File类相关推荐

  1. Java的File类

    File类的理解 常用构造器 常用方法 代码示例 练习 File类的理解 1.File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹) 2.File类声明在java.io中 3.File类中涉 ...

  2. JavaのFile类基础操作之问题

    在上一章节,介绍了File类的基础操作,比如文件的创建,文件的删除等等.这一章节,将介绍在File类基础操作中遇到的问题. 1.路径分割符问题 在实际的软件开发与运行过程中,往往都会在Windows环 ...

  3. java技术培训之File类中常用的构造方法

    File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:"D:\file\a.txt",也可以是相对于当前目录而言的相对路径,如:"src\Hello.j ...

  4. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  5. Java IO流 序列二:File类

    2019独角兽企业重金招聘Python工程师标准>>> 2.File API 2.1. File类简介 包路径:java.io.File 功能:用于表示文件或者目录. 说明:File ...

  6. java File类 常用相关函数

    java File类 相关函数 1.构建函数 2.判断相关函数 4.创建相关函数 5.删除相关函数 6.获取相关函数 1.构建函数 /*** File 构造方法* file 常用构造方法* 1: Fi ...

  7. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

  8. java 遍历file_JAVA File类(文件的遍历,创建,删除)

    File类构造函数 File f1=new File("H://asc//");//传入文件/目录的路径 File f2=new File(f1,"test.txt&qu ...

  9. 手把手带你入门Java中File类

    零基础学习Java之File类 概述 构造方法 基本介绍 代码示例 常用方法 获取文件和目录的基本信息 代码示例 判断功能 代码示例 创建和删除功能 代码示例 目录遍历功能 代码示例 概述 要学习Ja ...

最新文章

  1. 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100手机怎么设置?
  2. 真正的职场强者,都是闭环主义高手
  3. Scala入门到精通——第二十八节 Scala与JAVA互操作
  4. cwntos新建目录挂载磁盘_详解Linux磁盘挂载、分区、扩容操作的实现方法
  5. 51单片机io位与 c语言,【51单片机】普通I/O口模拟SPI口C语言程序
  6. 习题3.11 递归和非递归查找元素
  7. QT 实现采集即时音频信号并发送至另一台电脑播放
  8. 4种常用扒站工具(webzip、ha_TeleportPro、Offline Explorer、wget)
  9. RTT移植STM32之创建进程
  10. 酷开系统上线共抗疫情版块
  11. 全面的在线教育直播平台是怎样的呢?
  12. Android App 启动时显示正在加载图片(讲解+源码)
  13. 计算机一级word之sum函数,Word2013文档表格中利用SUM函数对数据进行计算的方法
  14. 云边协同关3篇政策与技术跟踪专题文章摘录
  15. h5 修改title 微信_h5制作小程序 邀请函模板免费
  16. Oracle数据库去重方法
  17. java词云推荐(KUMO)
  18. 三种邮件服务器的比较
  19. 公众号开发要点流程设计思路总结
  20. 电阻-那些你不了解的细节

热门文章

  1. 4K 海思 联咏 芯片_画质的好坏并不只取决于屏幕 电视芯片也很重要
  2. 30天python开发_30天解锁Python量化开发——初探交易接口
  3. 怎么添加设置微信定位服务器,微信的定位怎么添加
  4. python文件安全传输系统_安全的directconnect文件传输程序
  5. unity桌面设置vnc_win7系统通过VNCViewer访问Ubuntu桌面环境的操作方法
  6. MDL估计算法程序C语言,MDLS算法浅谈
  7. 预备队员技术验收开始
  8. 商品规格可选怎么设计_商品模块数据库表解析(一)
  9. oracle显示当天日期函数,oracle日期函数
  10. linux大批量删除文件,Linux rm删除大批量文件