要約
ファイルの検査関数を集めたモジュールです。
注意
FileTest で定義された各メソッドは、システムコールに失敗しても例外を発生させません。真を返した時のみ、返り値は意味をもちます。例えば、
File.exist?('/root/.bashrc')
が false を返しても、それはファイルが存在しないことを保証しません。
目次
- モジュール関数
モジュール関数
- blockdev?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがブロックスペシャルファイルである時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: Dir.glob("/dev/*") { |file| puts file if FileTest.blockdev?(file) } # /dev/disk0 # /dev/disk0s3 # ...
- chardev?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがキャラクタスペシャルファイルの時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: Dir.glob("/dev/*") { |file| puts file if FileTest.chardev?(file) } # /dev/console # /dev/tty # ...
- directory?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがディレクトリの時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: FileTest.directory?('/etc') # => true FileTest.directory?('/etc/passwd') # => false f = File.open('/etc') FileTest.directory?(f) # => true f.close FileTest.directory?(f) # => IOError: closed stream
- zero?(file) -> bool[permalink][rdoc][edit]
- empty?(file) -> bool
- 
ファイルが存在して、そのサイズが 0 である時に真を返します。そうでない場合、あるいはシステムコールに失敗した場合には false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: IO.write("zero.txt", "") FileTest.zero?("zero.txt") # => true IO.write("nonzero.txt", "1") FileTest.zero?("nonzero.txt") # => false[SEE_ALSO] FileTest.#size, FileTest.#size? 
- executable?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがカレントプロセスにより実行できる時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 例: FileTest.executable?('/bin') # => true FileTest.executable?('/bin/bash') # => true
- executable_real?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがカレントプロセスの実ユーザか実グループで実行できる時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 例 IO.write("empty.txt", "") File.chmod(0744, "empty.txt") FileTest.executable_real?("empty.txt") # => true File.chmod(0644, "empty.txt") FileTest.executable_real?("empty.txt") # => false
- exist?(file) -> bool[permalink][rdoc][edit]
- 
ファイルが存在する時に真を返します。そうでない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: FileTest.exist?('/etc/passwd') # => true FileTest.exist?('/etc') # => true FileTest.exist?('/etc/no_such_file') # => false FileTest.exist?('/etc/no_such_directory') # => false
- file?(file) -> bool[permalink][rdoc][edit]
- 
ファイルが通常ファイルである時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: FileTest.file?('/bin/bash') # => true FileTest.file?('/bin') # => false FileTest.file?('/no_such_file') # => false
- grpowned?(file) -> bool[permalink][rdoc][edit]
- 
ファイルのグループ ID がカレントプロセスの実効グループ ID と等しい時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例 IO.write("testfile", "") File.chown(-1, Process.gid, "testfile") FileTest.grpowned?("testfile") # => true File.chown(-1, Process.gid + 10, "testfile") FileTest.grpowned?("testfile") # => false
- identical?(file1, file2) -> bool[permalink][rdoc][edit]
- 
file1 と file2 が同じファイルを指している時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 ruby 1.8.3 以前ではKernel.#test(?-, file1, file2)を使ってください。 open("a", "w") {} p File.identical?("a", "a") #=> true p File.identical?("a", "./a") #=> true File.link("a", "b") p File.identical?("a", "b") #=> true File.symlink("a", "c") p File.identical?("a", "c") #=> true open("d", "w") {} p File.identical?("a", "d") #=> false- [PARAM] file1:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [PARAM] file2:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file1, file2 が既に close されていた場合に発生します。
 
- owned?(file) -> bool[permalink][rdoc][edit]
- 
ファイルのユーザがカレントプロセスの実効ユーザと等しい時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例 IO.write("testfile", "") File.chown(Process.uid, -1, "testfile") FileTest.owned?("testfile") # => true File.chown(501, -1, "testfile") FileTest.owned?("testfile") # => false
- pipe?(file) -> bool[permalink][rdoc][edit]
- 
指定したファイルがパイプである時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例: r, w = IO.pipe FileTest.pipe?(r) # => true FileTest.pipe?(w) # => true 
- readable?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがカレントプロセスにより読み込み可能な時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 例 IO.write("testfile", "") File.chmod(0644, "testfile") FileTest.readable?("testfile") # => true File.chmod(0200, "testfile") FileTest.readable?("testfile") # => false
- readable_real?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがカレントプロセスの実ユーザか実グループによって読み込み可能な時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 [SEE_ALSO] FileTest.#readable? 
- setgid?(file) -> bool[permalink][rdoc][edit]
- 
ファイルが setgid(2) されている時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
 例 require 'fileutils' IO.write("testfile", "") FileUtils.chmod("g+s", "testfile") FileTest.setgid?("testfile") # => true FileUtils.chmod("g-s", "testfile") FileTest.setgid?("testfile") # => false
- setuid?(file) -> bool[permalink][rdoc][edit]
- 
ファイルが setuid(2) されている時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例 require 'fileutils' IO.write("testfile", "") FileUtils.chmod("u+s", "testfile") FileTest.setuid?("testfile") # => true FileUtils.chmod("u-s", "testfile") FileTest.setuid?("testfile") # => false
- size(file) -> Integer[permalink][rdoc][edit]
- 
ファイルのサイズを返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] Errno::EXXX:
- file が存在しない場合、あるいはシステムコールに失敗した場合に発生します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 [SEE_ALSO] FileTest.#size?, FileTest.#zero? 例: FileTest.size('/etc/passwd') # => 5925
- size?(file) -> Integer | nil[permalink][rdoc][edit]
- 
ファイルのサイズを返します。ファイルが存在しない時やファイルのサイズが0の時には nil を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例 IO.write("testfile", "test") FileTest.size?("testfile") # => 4 File.delete("testfile") FileTest.size?("testfile") # => nil[SEE_ALSO] FileTest.#size, FileTest.#zero? 
- socket?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがソケットである時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
- [EXCEPTION] IOError:
- 指定された IO オブジェクト file が既に close されていた場合に発生します。
 例 require "socket" IO.write("testfile", "test") p FileTest.socket?("testfile") # => false Socket.unix_server_socket('testsock') { p FileTest.socket?('testsock') } # => true
- sticky?(file) -> bool[permalink][rdoc][edit]
- 
ファイルの sticky ビット(chmod(2) 参照)が立っている時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列か IO オブジェクトを指定します。
 例 require 'fileutils' IO.write("testfile", "") FileUtils.chmod("o+t", "testfile") FileTest.sticky?("testfile") # => true FileUtils.chmod("o-t", "testfile") FileTest.sticky?("testfile") # => false
- symlink?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがシンボリックリンクである時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 例 IO.write("testfile", "test") FileTest.symlink?("testfile") # => false File.symlink("testfile", "testlink") FileTest.symlink?("testlink") # => true
- world_readable?(path) -> Integer | nil[permalink][rdoc][edit]
- 
path が全てのユーザから読めるならばそのファイルのパーミッションを表す整数を返します。そうでない場合は nil を返します。 整数の意味はプラットフォームに依存します。 - [PARAM] path:
- パスを表す文字列を指定します。
 m = FileTest.world_readable?("/etc/passwd") "%o" % m # => "644"
- world_writable?(path) -> bool[permalink][rdoc][edit]
- 
path が全てのユーザから書き込めるならば、そのファイルのパーミッションを表す整数を返します。そうでない場合は nil を返します。 整数の意味はプラットフォームに依存します。 - [PARAM] path:
- パスを表す文字列を指定します。
 m = FileTest.world_writable?("/tmp") "%o" % m #=> "777"
- writable?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがカレントプロセスにより書き込み可能である時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 例 IO.write("testfile", "test") File.chmod(0600, "testfile") FileTest.writable?("testfile") # => true File.chmod(0400, "testfile") FileTest.writable?("testfile") # => false
- writable_real?(file) -> bool[permalink][rdoc][edit]
- 
ファイルがカレントプロセスの実ユーザか実グループによって書き込み可能である時に真を返します。そうでない場合、ファイルが存在しない場合、あるいはシステムコールに失敗した場合などには false を返します。 - [PARAM] file:
- ファイル名を表す文字列を指定します。
 [SEE_ALSO] FileTest.#writable?