ruby File类
类方法
路径相关:
- 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
重命名给定的文件或者目录为新名字,如果不能成功重命名,则引发SystemCallErrorFile.rename('1.txt', '2.txt')
- File.directory?(path) -> true or false
如果给定的文件是目录,则返回true,否则返回falseFile.directory?('.') #-> true
- File.exist?(filename) -> true or false
如果给定的文件或目录存在,则返回trueFile.exist?('test.txt') #-> true
- File.file?(filename) -> true or false
如果给定的文件是一个普通文件(不是设备文件,目录,管道,socket等等),则返回trueFile.file?('test.txt') #=> true
File.file?('.') #=> false - File.socket?(filename) -> true or false
如果给定的文件是socket文件则返回true,如果不是或者操作系统不支持这种特性则返回falseFile.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可以读给定的文件,则返回trueFile.readable?('test.txt') #=> true
- File.writable?(filename) -> true or false
如果给定的文件可以被进程的有效用户ID写,则返回trueFile.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
ruby File类的更多相关文章
- 雷林鹏分享:Ruby File 类和方法
Ruby File 类和方法 File 表示一个连接到普通文件的 stdio 对象.open 为普通文件返回该类的一个实例. 类方法 序号方法 & 描述 1File::atime( path) ...
- java IO(一):File类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 雷林鹏分享:Ruby Dir 类和方法
Ruby Dir 类和方法 Dir 是一个表示用于给出操作系统中目录中的文件名的目录流.Dir 类也拥有与目录相关的操作,比如通配符文件名匹配.改变工作目录等. 类方法 序号方法 & 描述 1 ...
- java中File类的使用
public class FileLei { public static void main(String[] args) throws IOException { //..表示上 ...
- File 类
File 类:文件和目录(文件夹)路径名的抽象表现形式. 方法 1.创建功能 public boolean createNewFile():创建文件 public boolean mkdir():创建 ...
- C#File类常用的文件操作方法(创建、移动、删除、复制等)
File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path ...
- File类基础
File类的作用: Java的io包中定义了File类,用于对文件或文件夹的管理操作. File类只能够用于表示文件或文件夹的信息(属性)和对该文件或文件夹的删除创建操作 (不能对内容进行访问) 通过 ...
- 【转】File类应用 - FilenameFilter 和 FileFilter
FilenameFilter & FileFilter FilenameFilter 和 FileFilter 都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码 ...
- Java篇-File类之创建删除
/** * */ package com.io.file; import java.io.File; import java.io.IOException; import org.junit.Test ...
随机推荐
- Spring MVC 如何加载静态html
在spring mvc的xml文件最后面加上下面这一行<mvc:deault-servlet-handler/>
- asyncio标准库3 HTTP client example
import aiohttp import asyncio import async_timeout async def fetch(session, url): async with async_t ...
- 爬虫入门之爬取策略 XPath与bs4实现(五)
爬虫入门之爬取策略 XPath与bs4实现(五) 在爬虫系统中,待抓取URL队列是很重要的一部分.待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪 ...
- x64 分页机制——虚拟地址到物理地址寻址
原博客:http://www.cnblogs.com/lanrenxinxin/p/4735027.html 详细的理论讲解都在上面 下面说的是通过windbg手动进行寻址,深入理解 x64: 实践: ...
- angular2 里父子组件传值的坑
1.如果传的是基本类型的值,子组件里改变该值,父组件无变化 2.如果传的是对象,子组件里改变对象里的变量,父组件会变化 3.如果传的是函数,this不会继续指向父组件对象了,如果需要this指向父组件 ...
- C语言 Include指令(引用头文件)
#include "one.h" #include "two.h" int main(int argc, const char * argv[]) { one( ...
- JS:jquery插件表格单元格合并.
公司需要用到单元格合并,于是动手封装了一个简单的jquery插件,封装的函数是直接写好转的,请多多提意见看代码是否有优化的地方..... 截图: 代码: /* * mergeTable 0.1 * C ...
- Android4.4 ContentResolver查询图片无效 及 图库删除 添加图片后,ContentResolver不更新的问题解决
问题背景: 參考链接 做了一个图片浏览,用ContentResolver扫描图库照片.且严格依照时间拍摄顺序排好序显示在listview里.例如以下图所看到的: watermark/2/text/aH ...
- 学大伟业 Day 1 培训总结
第一天培训,讲的基本算法,东西很多.还有些数论,图论,数据结构and some small tricks 一.输入输出技巧 //输入输出技巧 /* scanf.printf:速度快,需要记忆不同数据类 ...
- neo4j 安装步骤 转自:http://blog.csdn.net/luoluowushengmimi/article/details/19987995
1. Neo4j简介 Neo4j是一个用Java实现的.高性能的.NoSQL图形数据库.Neo4j 使用图(graph)相关的概念来描述数据模型,通过图中的节点和节点的关系来建模.Neo4j完全兼容A ...