首页 > 其他 > 详细

ruby File类

时间:2018-05-15 23:21:27      阅读:194      评论:0      收藏:0      [点我收藏+]

类方法

  路径相关:

  • 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,否则返回其大小。在测试的条件语句中很有用

  

实例方法

技术分享图片

 

ruby File类

原文:https://www.cnblogs.com/wf0117/p/9043495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!