File クラス
- ファイルアクセスのためのクラスです.通常,ファイルのオープンは,組み込み関数 open,または,File.open によって行われます.なお,以下の説明において,ファイル file1 の内容は
- data1 in file1
- data2 in file1
- であるとします.
-
- [クラスメソッド]
- [メソッド]
[クラスメソッド]
- File.atime ( filename )
- File.ctime ( filename )
- File.mtime ( filename )
- それぞれ,ファイルの最終アクセス時刻,状態が最後に変更された時刻,及び,最終更新時刻(いずれも,Time クラスのオブジェクト)を返します.
- p File.atime("file1") # => Fri Jun 26 13:54:49 +0900 2009
- File.basename ( filename [ , suffix ] )
- filename の一番後ろのスラッシュに続く要素を返します.もし,引数 suffix が与えられて,かつ,それが filename の末尾に一致するなら,それを取り除いたものを返します( File.extname,File.dirname 参照).
- p File.basename("/temp1/file1.txt") # => "file1.txt"
- p File.basename("/temp1/file1.txt", ".txt") # => "file1"
- p File.extname("/temp1/file1.txt") # => ".txt"
- p File.dirname("/temp1/file1.txt") # => "/temp1"
- File.chmod ( mode [ , filename [ , ・・・ ] ] )
- ファイルのモードを mode に変更します.モードを変更したファイルの数を返します.mode は,数値で指定します.
- File.delete ( filename, ・・・ )
- ファイルを削除します.削除したファイルの数を返します.
- File.dirname ( filename )
- filename の一番後ろのスラッシュより前を,文字列として返します.スラッシュを含まないファイル名に対しては,"."(カレントディレクトリ)を返します( File.extname,File.basename 参照).
- p File.basename("/temp1/file1.txt") # => "file1.txt"
- p File.basename("/temp1/file1.txt", ".txt") # => "file1"
- p File.extname("/temp1/file1.txt") # => ".txt"
- p File.dirname("/temp1/file1.txt") # => "/temp1"
- File.expand_path ( path [ , default_dir ] )
- path を絶対パスに展開した文字列を返します.path が相対パスであれば,default_dir を基準にします.default_dir が nil,または,与えられなかった時には,カレントディレクトリが使われます.
- 先頭の ~ は,ホームディレクトリ(環境変数 HOME が使われます)に,また,~USER はそのユーザのホームディレクトリに展開されます.
- p File.expand_path("file1") # => "c:/temp1/file1"
- p File.expand_path(".") # => "c:/temp1"
- File.extname ( filename )
- ファイル名 filename の拡張子部分を返します.filename に拡張子が含まれない場合は,空文字列を返します( File.dirname,File.basename 参照).
- p File.basename("/temp1/file1.txt") # => "file1.txt"
- p File.basename("/temp1/file1.txt", ".txt") # => "file1"
- p File.extname("/temp1/file1.txt") # => ".txt"
- p File.dirname("/temp1/file1.txt") # => "/temp1"
- File.fnmatch ( pattern, path [ , flags ] )
- File.fnmatch? ( pattern, path [ , flags ] )
- ファイル名のパターンマッチを行います.path が pattern にマッチすれば,真を返します.pattern には,ワイルドカードとして,*,?,及び,[] を使用できます.
- flags に対しては,以下の定数( File::Constants モジュールで定義されています)を論理和で指定することによって,パターンマッチの動作を変更することができます.flags のデフォルト値は 0 (フラグ指定なし)です.
- FNM_NOESCAPE エスケープ文字 \ を,普通の文字とみなします.
- FNM_PATHNAME ワイルドカード *,?,及び,[] が,/ にマッチしなくなります.
- FNM_CASEFOLD アルファベットの大小文字を区別せずにパターンマッチを行います.
- FNM_DOTMATCH ワイルドカード *,?,及び,[] が,先頭の . にマッチするようになります.
- p File.fnmatch("*.txt", "/temp1/file1.txt") # => true
- p File.fnmatch("*.txt", "/temp1/file1.txt", File::FNM_PATHNAME) # => false
- File.new ( path [ , mode [ , perm ] ] )
- File.open ( path [ , mode [ , perm ] ] )
- File.open ( path [ , mode [ , perm ] ] ) { | file | ・・・ }
- pathで指定されるファイルをオープンし,ファイルオブジェクトを返します.引数 mode,perm については,組み込み関数 open を参照してください.
- ブロックを指定して呼び出した場合は,ファイルオブジェクトを与えられてブロックが実行されます.ブロックの実行が終了すると,ファイルは自動的にクローズされます.ブロックが指定されたときの戻り値は,ブロックの実行結果です.
- io = File.open("file1", "r")
- p io.gets # => "data1 in file1\n"
- io.close
- File.rename ( from, to )
- ファイルの名前を変更します.ディレクトリが異なる場合には,移動も行います.移動先のファイルが存在する時には,上書きされます.ファイルの移動に成功した場合 0 を返します.
- File.split ( pathname )
- pathname を dirname と basename に分割して,2 要素の配列を返します.
- p File.split("/temp1/file1.txt") # => ["/temp1", "file1.txt"]
- File.utime ( atime, mtime [ , filename [ , ・・・ ] ] )
- ファイルの最終アクセス時刻と更新時刻を変更します.変更したファイルの数を返します.先頭の二つの引数は,時刻を指定する数値,または,Time クラスのインスタンスでなければなりません.
- p File.utime(1246000000, Time.now, "file1") # => 1
- p File.atime("file1") # => Fri Jun 26 16:06:40 +0900 2009
- p File.mtime("file1") # => Fri Jun 26 17:03:47 +0900 2009
- File.directory? ( path )
- path がディレクトリの時,真を返します.
- File.executable? ( path )
- path が実行できる時,真を返します.
- File.exist? ( path )
- path が存在する時,真を返します.
- File.file? ( path )
- path が通常ファイルである時,真を返します.
- File.readable? ( path )
- path を読み込み可能な時,真を返します.
- File.size ( path )
- path のサイズを返します.path が存在しなければ,例外 Errno::EXXX が発生します.
- File.size? ( path )
- path のサイズを返します.path が存在しない時や,path のサイズが 0 の時には,nil を返します.
- File.writable? ( path )
- path が書き込み可である時,真を返します.
- File.zero? ( path )
- path が存在して,そのサイズが 0 である時,真を返します.path が存在しない場合は,false を返します.
[メソッド]
- atime
- ctime
- mtime
- それぞれ,ファイルの最終アクセス時刻,状態が最後に変更された時刻,及び,最終更新時刻(いずれも,Time クラスのオブジェクト)を返します.
- io = File.open("file1")
- p io.atime # => Mon Jun 15 08:42:42 +0900 2009
- io.close
- chmod ( mode )
- ファイルのモードを mode に変更します.モードを変更したファイルの数を返します.mode は,数値で指定します.