File

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

一个文件对象打开并且没有建立任何引用的话,该对象会被垃圾回收关闭并丢弃。

超类

类方法

File.mtime(filename)

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

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

File.basename(filename[, suffix])

返回 filename 最后一个斜线后面的部分。若是提供了 suffix 参数,并且与 filename 的后缀一致时,则会返回不包含后缀的 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.dirname 和 File.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.basename 和 File.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.basename 和 File.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

返回所打开的文件路径。