前 - 上 - 次 - 目次

# File

  ファイルアクセスのためのクラス．通常 `open` を使ってオープンされます．このクラスには `FileTest` で定義されているのと同じ特異メソッドが定義されています．

## スーパークラス:

  `IO`

## クラスメソッド:

  `atime(filename)`

    ファイルの最終アクセス時刻を返します．

  `basename(filename[, suffix])`

    filenameの一番後ろのスラッシュに続く要素を返しま す．もし，引数suffixが与えられて，かつそれが filenameの末尾に一致するなら，それを取り除いたも のを返します．

    例:

    >     basename("ruby/ruby.c")
    >     	=> "ruby.c"
    >     basename("ruby/ruby.c", ".c")
    >       => "ruby"

  `ctime(filename)`

    ファイルの状態が最後に変更された時刻を返します．

  `chmod(mode, path...)`

    ファイルのモードをmodeに変更します．モードを変更 したファイルの数を返します．

  `chown(owner, group, filename...)`

    ファイルのオーナーとグループを変更します．スーパーユーザだけ がファイルのオーナーとグループを変更できます．変更を行ったファ イルの数を返します．

    `nil` または `-1` を指定することでオー ナーやグループを現在のままにすることができます．

  `dirname(filename)`

    filenameの一番後ろのスラッシュに続く要素以外を文 字列として返します．スラッシュを含まないファイル名に対しては `"."`(カレントディレクトリ)を返します．

  `expand_path(path[,default_dir])`

    pathを絶対パスに展開します． パスが相対パスであればdefault_dirを基準にします． default_dirがnilかまたは与えられなかった時にはカ レントディレクトリが使われます． 先頭の``~`'はホームディレクトリに，``~USER`' はそのユーザのホームディレクトリに展開されます．

    >     expand_path("..")
    >            => "/home/matz/work"
    >     expand_path("~")
    >            => "/home/matz"
    >     expand_path("~matz")
    >            => "/home/matz"

  `join(items...)`

    `File::Separator`を間に入れて，文字列を連結します．

        [items,..].join(File::Separator)

    も同じ動作をします．
  `ftype(filename)`

    ファイルのタイプを表す文字列を返します．文字列は以下のうちの いずれかです．

    > `"file"`
    > `"directory"`
    > `"characterSpecial"`
    > `"blockSpecial"`
    > `"fifo"`
    > `"link"`
    > `"socket"`

  `link(old, new)`

    oldを指すnewという名前のハードリンクを 生成します．oldはすでに存在している必要があります．

  `lstat(filename)`

    `stat`と同様にファイルの 状態を返しますが，シンボリックリンクに関してリンクそのものの 情報を返します．

  `mtime(filename)`

    ファイルの最終更新時刻を返します．

  `open(path[, mode])`
  `new(path[, mode [, perm]])`

    pathで指定されるファイルをオープンし，ファイルオ ブジェクトを返します．

    modeが文字列の場合、`fopen(3)`のよう に`"r"`, `"r+"`, `"w"`, `"w+"`, `"a"`, `"a+"`のい ずれかでファイルのモードを指定します．permは無視 されます．modeが省略された時のデフォルトは `"r"`です．

    modeが整数の場合、`open(2)`の第2引数 と同様に`RDONLY`, `WRONLY`, `RDWR`のいずれかでファイルのモードを指定します． さらに`APPEND`, `CREAT`, `EXCL`, `NONBLOCK`, `TRUNC`, `NOCTTY`, `BINARY`を一つ以上`|`でOR結合すること で属性を指定することができます． permは `open(2)`の第3引数と同じく、`CREAT`時 のファイルのアクセス権を整数で指定します． これらの定数はFileクラスで定義されています．

    ブロックを指定して呼び出した場合は、ファイルオブジェクトを 与えられてブロックが実行されます．ブロックの実行が終了すると、 ファイルは自動的にクローズされます．

  `readlink(path)`

    シンボリックリンクのリンク先を文字列で返します．

  `rename(from, to)`

    ファイルの名前を変更します．ディレクトリが異なる場合には移動 も行います．`rename(2)`を参照してください．移動先 のファイルが存在する時には上書きされます．

  `size(pathname)`

    pathnameで指定したファイルの大きさ(バイト数)を返します．

  `split(pathname)`

    pathnameを`dirname`と `basename`に分割して，2要素の配列を返します．

  `stat(filename)`

    filenameの情報を含むStat構造体を返します． `Stat`構造体のメンバは以下の通りです．

    >     dev	 	# デバイス番号(ファイルシステム)
    >     ino		# i-node番号
    >     mode		# ファイルモード
    >     nlink		# ハードリンクの数
    >     uid		# オーナーのユーザID
    >     gid		# オーナーのグループID
    >     rdev		# デバイスタイプ(スペシャルファイルのみ)
    >     size		# ファイルサイズ(バイト単位)
    >     blksize		# 望ましいI/Oのブロックサイズ
    >     blocks		# 割り当てられているブロック数
    >     atime		# 最終アクセス時刻
    >     mtime		# 最終更新時刻
    >     ctime		# 最終i-node変更時刻

    より詳細は`stat(2)`してください．システムによって サポートされていないメンバには0が入っています．

  `symlink(old, new)`

    oldへのnewという名前のシンボリックリン クを生成します．

  `truncate(path, length)`

    pathで指定されたファイルを最大lengthバ イトにまで切り詰めます．

  `unlink(filename...)`
  `delete(filename...)`

    ファイルを削除します．削除したファイルの数を返します．このメ ソッドは通常ファイルの削除用で，ディレクトリの削除には `Dir.rmdir`を使 います．

  `umask([umask])`

    umaskを変更します．変更前のumaskの値を返します． umaskを省略すると変更を行わないで，現在のumaskの 値を返します．

  `utime(atime, mtime, filename...)`

    ファイルの最終アクセス時刻と更新時刻を変更します．変更された ファイルの数を返します．先頭の二つの引数は時刻を指定する数値 または`Time`クラスのイン スタンスでなければなりません．

  これら以外にも`File`クラスは `FileTest`クラスで定義され ているクラスメソッドも持っています．

## メソッド:

  `atime`

    ファイルの最終アクセス時刻を返します．

  `ctime`

    ファイルの状態が最後に変更された時刻を返します．

  `chmod(mode)`

    ファイルのモードをmodeに変更します． `chmod(2)`参照．

  `chown(owner, group)`

    ファイルのオーナーとグループを変更します．スーパーユーザだけ がファイルのオーナーとグループを変更できます． `nil` または `-1` を指定することでオー ナーやグループを現在のままにすることができます．

  `flock(operation)`

    ファイルをロックします．`LOCK_NB`が指定されていて， ブロックされそうな場合にはFALSEを返します．有効な operationは以下の通りです．

    `LOCK_SH`
      共有ロック．複数のプロセスが同時にロックを共有できます．
    `LOCK_EX`
      排他ロック．同時にはただひとつのプロセスだけがロックを保持できます．
    `LOCK_UN`
      アンロック．
    `LOCK_NB`
      ロックの際にブロックしない．他の指定と`or`するこ とで指定します．

    以上の定数は`File`クラスで定義されています．

  `eof`
  `eof?`

    ファイルがEOFに到達している時に真を返します．

  `lstat`

    `stat`と同様にファイルの 状態を返しますが，シンボリックリンクに関してリンクそのものの 情報を返します．

  `mtime`

    ファイルの最終更新時刻を返します．

  `reopen(io)`
  `reopen(path, mode)`

    1引数の時，自身をioに繋ぎ換えます．2引数の時， pathで指定されたファイルにストリームを繋ぎ換えま す．

  `path`

    オープンしているファイルのパスを返します．

  `stat`

    ファイルの状態を含むStat構造体を返します．

  `truncate(length)`

    ファイルのサイズを最大lengthバイトにします．ファ イルはライトモードでオープンされている必要があります．

## 定数:

  `Separator`

    ファイルパスのセパレータです．普通は`"/"`です．

前 - 上 - 次 - 目次

matz@netlab.co.jp