File

访问文件的类,实例通常由 openFile.open 创建。

一个打开但没有引用的 File 对象会被垃圾回收 close 后丢弃。

超类

类方法

File.mtime(filename)

返回最后修改时间 (Time 对象)。

若是读取失败,抛出 Errno::EXXX 异常。

File.basename(filename[, suffix])

返回 filename 最后一个斜线后面的部分。若是提供了 suffix 参数,并且与 filename 的后缀一致时,则会去除后缀后返回。

p File.basename("ruby/ruby.c")        # => "ruby.c"
p File.basename("ruby/ruby.c", ".c")  # => "ruby"
p File.basename("ruby/ruby.c", ".*")  # => "ruby"
p File.basename("ruby/ruby.exe", ".*")  # => "ruby"

参看 File.dirnameFile.extname

File.delete(filename ... )

删除文件,并返回所删除的文件数目。若删除失败,则抛出 Errno::EXXX 异常。

此方法是用来删除文件的,无法删除目录。

File.dirname(filename)

返回 filename 最后一个斜线前面的部分。若 filename 不包含斜线,则返回 "."(当前目录)。

p File.dirname("dir/file.ext")    # => "dir"
p File.dirname("file.ext")        # => "."
p File.dirname("foo/bar/")        # => "foo"
p File.dirname("foo//bar")        # => "foo"

参见 File.basenameFile.extname

File.expand_path(path[, default_dir])

以字符串形式返回 path 展开的绝对路径。若 path 是相对路径,则将 default_dir 设为基准目录。省略了 default_dir 或值为 nil 时,使用当前目录。

p File.expand_path("..")         # => "/home/matz/work"
p File.expand_path("..", "/tmp") # => "/"
File.extname(filename)

返回 filename 的扩展名(最后一个.后面的字符串)。在目录名称或文件名开头的 . 不会被看做是扩展名的一部份。若 filename 不包含扩展名,则返回空字符串。

p File.extname("foo/foo.txt")     # => ".txt"
p File.extname("foo/foo.tar.gz")  # => ".gz"
p File.extname("foo/bar")         # => ""
p File.extname("foo/.bar")        # => ""
p File.extname("foo.txt/bar")     # => ""
p File.extname(".foo")            # => ""

参见 File.basenameFile.dirname

File.open(path[, mode])
File.open(path[, mode]) {|file| ... }

开启由 path 指定的文件,并返回文件对象。若开启文件失败,则抛出 Errno::EXXX 异常。

参数 mode 的用法与内建函数 open 相同。

open() 可以带区块,此时以指定的文件对象运行区块。区块执行结束后自动关闭文件。

带区块时,返回值为区块的计算结果。

File.rename(from, to)

重命名文件,若是目录不同则会将文件移动至指定文件夹。若是目标文件夹已有同名文件,则会予以覆盖。

移动成功时,返回 0,失败则抛出 Errno::EXXX 异常。

方法

mtime

返回上次修改时间(Time 对象)。

若是读取失败,抛出 Errno::EXXX 异常。

path

返回所打开的文件路径。