# FilesystemIterator クラス

(PHP 5 >= 5.3.0, PHP 7)

## はじめに

Filesystem イテレータです。

## クラス概要

FilesystemIterator extends DirectoryIterator implements SeekableIterator {
/* 定数 */
const integer CURRENT_AS_PATHNAME = 32 ;
const integer CURRENT_AS_FILEINFO = 0 ;
const integer CURRENT_AS_SELF = 16 ;
const integer CURRENT_MODE_MASK = 240 ;
const integer KEY_AS_PATHNAME = 0 ;
const integer KEY_AS_FILENAME = 256 ;
const integer FOLLOW_SYMLINKS = 512 ;
const integer KEY_MODE_MASK = 3840 ;
const integer NEW_CURRENT_AND_KEY = 256 ;
const integer SKIP_DOTS = 4096 ;
const integer UNIX_PATHS = 8192 ;
/* メソッド */
public __construct ( string `$path` [, int `$flags` = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public current ( void ) : mixed
public getFlags ( void ) : int
public key ( void ) : string
public next ( void ) : void
public rewind ( void ) : void
public setFlags ([ int `$flags` ] ) : void
/* 継承したメソッド */
public DirectoryIterator::current ( void ) : DirectoryIterator
public DirectoryIterator::getATime ( void ) : int
public DirectoryIterator::getBasename ([ string `$suffix` ] ) : string
public DirectoryIterator::getCTime ( void ) : int
public DirectoryIterator::getExtension ( void ) : string
public DirectoryIterator::getFilename ( void ) : string
public DirectoryIterator::getGroup ( void ) : int
public DirectoryIterator::getInode ( void ) : int
public DirectoryIterator::getMTime ( void ) : int
public DirectoryIterator::getOwner ( void ) : int
public DirectoryIterator::getPath ( void ) : string
public DirectoryIterator::getPathname ( void ) : string
public DirectoryIterator::getPerms ( void ) : int
public DirectoryIterator::getSize ( void ) : int
public DirectoryIterator::getType ( void ) : string
public DirectoryIterator::isDir ( void ) : bool
public DirectoryIterator::isDot ( void ) : bool
public DirectoryIterator::isExecutable ( void ) : bool
public DirectoryIterator::isFile ( void ) : bool
public DirectoryIterator::isLink ( void ) : bool
public DirectoryIterator::isReadable ( void ) : bool
public DirectoryIterator::isWritable ( void ) : bool
public DirectoryIterator::key ( void ) : string
public DirectoryIterator::next ( void ) : void
public DirectoryIterator::rewind ( void ) : void
public DirectoryIterator::seek ( int `$position` ) : void
public DirectoryIterator::__toString ( void ) : string
public DirectoryIterator::valid ( void ) : bool
}

## 定義済み定数

`FilesystemIterator::CURRENT_AS_PATHNAME`

  FilesystemIterator::current() がパス名を返すようにします。

`FilesystemIterator::CURRENT_AS_FILEINFO`

  FilesystemIterator::current() が SplFileInfo のインスタンスを返すようにします。

`FilesystemIterator::CURRENT_AS_SELF`

  FilesystemIterator::current() が $this (FilesystemIterator) を返すようにします。

`FilesystemIterator::CURRENT_MODE_MASK`

  FilesystemIterator::current() をマスクします。

`FilesystemIterator::KEY_AS_PATHNAME`

  FilesystemIterator::key() がパス名を返すようにします。

`FilesystemIterator::KEY_AS_FILENAME`

  FilesystemIterator::key() がファイル名を返すようにします。

`FilesystemIterator::FOLLOW_SYMLINKS`

  RecursiveDirectoryIterator::hasChildren() がシンボリックリンクのリンク先をたどるようにします。

`FilesystemIterator::KEY_MODE_MASK`

  FilesystemIterator::key() をマスクします。

`FilesystemIterator::NEW_CURRENT_AND_KEY`

  FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO と同じ。

`FilesystemIterator::SKIP_DOTS`

  ドットファイル (. および ..) をスキップします。

`FilesystemIterator::UNIX_PATHS`

  システムのデフォルトにかかわらず、Unix スタイルのスラッシュでパスをあらわすようにします。 コンストラクタから渡された `path` は変更されないことに注意しましょう。

## 変更履歴

バージョン | 説明
--- | ---
5.3.1 | `FilesystemIterator::FOLLOW_SYMLINKS` が追加されました。

## 目次

- FilesystemIterator::__construct — 新しい filesystem イテレータを作成する
- FilesystemIterator::current — 現在のファイル
- FilesystemIterator::getFlags — 処理フラグを取得する
- FilesystemIterator::key — 現在のファイルのキーを取得する
- FilesystemIterator::next — 次のファイルに移動する
- FilesystemIterator::rewind — 先頭に巻き戻す
- FilesystemIterator::setFlags — 処理フラグを設定する