Class Folder

Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.

Package: Cake\Utility
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Utility/Folder.php

Constants summary

Properties summary

  • $_directories protected
    array
    Holds array of complete directory paths.
  • $_errors protected
    array
    Holds errors from last method.
  • $_files protected
    array
    Holds array of complete file paths.
  • $_fsorts protected
    array
    Functions array to be called depending on the sort type chosen.
  • $_messages protected
    array
    Holds messages from last method.
  • $mode public
    integer
    Mode to be used on create. Does nothing on Windows platforms.
  • $path public
    string
    Path to Folder.
  • $sort public
    boolean

    Sortedness. Whether or not list results should be sorted by name.

Method Summary

  • __construct() public
    Constructor.
  • _findRecursive() protected
    Private helper function for findRecursive.
  • addPathElement() public static
    Returns $path with $element added, with correct slash in-between.
  • cd() public
    Change directory to $path.
  • chmod() public
    Change the mode on a directory structure recursively. This includes changing the mode on files as well.
  • copy() public
    Recursive directory copy.
  • correctSlashFor() public static
    Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
  • create() public
    Create a directory structure recursively.
  • delete() public
    Recursively Remove directories if the system allows.
  • dirsize() public
    Returns the size in bytes of this Folder and its contents.
  • errors() public
    get error from latest method
  • find() public
    Returns an array of all matching files in current directory.
  • Returns an array of all matching files in and below current directory.
  • inCakePath() public
    Returns true if the Folder is in the given Cake path.
  • inPath() public
    Returns true if the Folder is in the given path.
  • isAbsolute() public static
    Returns true if given $path is an absolute path.
  • Returns true if given $path is a registered stream wrapper.
  • isSlashTerm() public static
    Returns true if given $path ends in a slash (i.e. is slash-terminated).
  • isWindowsPath() public static
    Returns true if given $path is a Windows path.
  • messages() public
    get messages from latest method
  • move() public
    Recursive directory move.
  • normalizePath() public static
    Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
  • pwd() public
    Return current path.
  • read() public

    Returns an array of the contents of the current directory. The returned array holds two arrays: One of directories and one of files.

  • realpath() public
    Get the real path (taking ".." and such into account)
  • slashTerm() public static
    Returns $path with added terminating slash (corrected for Windows or other OS).
  • tree() public
    Returns an array of nested directories and files in each directory

Method Detail

__construct()source public

__construct( string $path false , boolean $create false , string|boolean $mode false )

Constructor.

Parameters

string $path optional false
Path to folder
boolean $create optional false
Create folder if not found
string|boolean $mode optional false
Mode (CHMOD) to apply to created folder, false to ignore

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder

_findRecursive()source protected

_findRecursive( string $pattern , boolean $sort false )

Private helper function for findRecursive.

Parameters

string $pattern
Pattern to match against
boolean $sort optional false
Whether results should be sorted.

Returns

array
Files matching pattern

addPathElement()source public static

addPathElement( string $path , string|array $element )

Returns $path with $element added, with correct slash in-between.

Parameters

string $path
Path
string|array $element
Element to add at end of path

Returns

string
Combined path

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::addPathElement

cd()source public

cd( string $path )

Change directory to $path.

Parameters

string $path
Path to the directory to change to

Returns

string
The new path. Returns false on failure

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::cd

chmod()source public

chmod( string $path , integer $mode false , boolean $recursive true , array $exceptions array() )

Change the mode on a directory structure recursively. This includes changing the mode on files as well.

Parameters

string $path
The path to chmod.
integer $mode optional false
Octal value, e.g. 0755.
boolean $recursive optional true
Chmod recursively, set to false to only change the current directory.
array $exceptions optional array()
Array of files, directories to skip.

Returns

boolean
Success.

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::chmod

copy()source public

copy( array|string $options )

Recursive directory copy.

Options

  • to The directory to copy to.
  • from The directory to copy from, this will cause a cd() to occur, changing the results of pwd().
  • mode The mode to copy the files/directories with as integer, e.g. 0775.
  • skip Files/directories to skip.
  • scheme Folder::MERGE, Folder::OVERWRITE, Folder::SKIP

Parameters

array|string $options
Either an array of options (see above) or a string of the destination directory.

Returns

boolean
Success.

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::copy

correctSlashFor()source public static

correctSlashFor( string $path )

Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)

Parameters

string $path
Path to check

Returns

string
Set of slashes ("\" or "/")

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::correctSlashFor

create()source public

create( string $pathname , integer $mode false )

Create a directory structure recursively.

Can be used to create deep path structures like /foo/bar/baz/shoe/horn

Parameters

string $pathname

The directory structure to create. Either an absolute or relative path. If the path is relative and exists in the process' cwd it will not be created. Otherwise relative paths will be prefixed with the current pwd().

integer $mode optional false
octal value 0755

Returns

boolean
Returns TRUE on success, FALSE on failure

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::create

delete()source public

delete( string $path null )

Recursively Remove directories if the system allows.

Parameters

string $path optional null
Path of directory to delete

Returns

boolean
Success

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::delete

dirsize()source public

dirsize( )

Returns the size in bytes of this Folder and its contents.

Returns

integer
size in bytes of current folder

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::dirsize

errors()source public

errors( boolean $reset true )

get error from latest method

Parameters

boolean $reset optional true
Reset error stack after reading

Returns

array

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::errors

find()source public

find( string $regexpPattern '.*' , boolean $sort false )

Returns an array of all matching files in current directory.

Parameters

string $regexpPattern optional '.*'
Preg_match pattern (Defaults to: .*)
boolean $sort optional false
Whether results should be sorted.

Returns

array
Files that match given pattern

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::find

findRecursive()source public

findRecursive( string $pattern '.*' , boolean $sort false )

Returns an array of all matching files in and below current directory.

Parameters

string $pattern optional '.*'
Preg_match pattern (Defaults to: .*)
boolean $sort optional false
Whether results should be sorted.

Returns

array
Files matching $pattern

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::findRecursive

inCakePath()source public

inCakePath( string $path '' )

Returns true if the Folder is in the given Cake path.

Parameters

string $path optional ''
The path to check.

Returns

boolean

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::inCakePath

inPath()source public

inPath( string $path '' , boolean $reverse false )

Returns true if the Folder is in the given path.

Parameters

string $path optional ''
The absolute path to check that the current pwd() resides within.
boolean $reverse optional false
Reverse the search, check if the given $path resides within the current pwd().

Returns

boolean

Throws

InvalidArgumentException
When the given $path argument is not an absolute path.

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::inPath

isAbsolute()source public static

isAbsolute( string $path )

Returns true if given $path is an absolute path.

Parameters

string $path
Path to check

Returns

boolean
true if path is absolute.

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::isAbsolute

isRegisteredStreamWrapper()source public static

isRegisteredStreamWrapper( string $path )

Returns true if given $path is a registered stream wrapper.

Parameters

string $path
Path to check

Returns

boo
true If path is registered stream wrapper.

isSlashTerm()source public static

isSlashTerm( string $path )

Returns true if given $path ends in a slash (i.e. is slash-terminated).

Parameters

string $path
Path to check

Returns

boolean
true if path ends with slash, false otherwise

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::isSlashTerm

isWindowsPath()source public static

isWindowsPath( string $path )

Returns true if given $path is a Windows path.

Parameters

string $path
Path to check

Returns

boolean
true if Windows path, false otherwise

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::isWindowsPath

messages()source public

messages( boolean $reset true )

get messages from latest method

Parameters

boolean $reset optional true
Reset message stack after reading

Returns

array

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::messages

move()source public

move( array $options )

Recursive directory move.

Options

  • to The directory to copy to.
  • from The directory to copy from, this will cause a cd() to occur, changing the results of pwd().
  • chmod The mode to copy the files/directories with.
  • skip Files/directories to skip.
  • scheme Folder::MERGE, Folder::OVERWRITE, Folder::SKIP

Parameters

array $options
(to, from, chmod, skip, scheme)

Returns

boolean
Success

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::move

normalizePath()source public static

normalizePath( string $path )

Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)

Parameters

string $path
Path to check

Returns

string
Set of slashes ("\" or "/")

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::normalizePath

pwd()source public

pwd( )

Return current path.

Returns

string
Current path

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::pwd

read()source public

read( string|boolean $sort self::SORT_NAME , array|boolean $exceptions false , boolean $fullPath false )

Returns an array of the contents of the current directory. The returned array holds two arrays: One of directories and one of files.

Parameters

string|boolean $sort optional self::SORT_NAME

Whether you want the results sorted, set this and the sort property to false to get unsorted results.

array|boolean $exceptions optional false
Either an array or boolean true will not grab dot files
boolean $fullPath optional false
True returns the full path

Returns

mixed
Contents of current directory as an array, an empty array on failure

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::read

realpath()source public

realpath( string $path )

Get the real path (taking ".." and such into account)

Parameters

string $path
Path to resolve

Returns

string
The resolved path

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::realpath

slashTerm()source public static

slashTerm( string $path )

Returns $path with added terminating slash (corrected for Windows or other OS).

Parameters

string $path
Path to check

Returns

string
Path with ending slash

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::slashTerm

tree()source public

tree( string $path null , array|boolean $exceptions false , string $type null )

Returns an array of nested directories and files in each directory

Parameters

string $path optional null
the directory path to build the tree from
array|boolean $exceptions optional false

Either an array of files/folder to exclude or boolean true to not grab dot files/folders

string $type optional null
either 'file' or 'dir'. null returns both files and directories

Returns

mixed
array of nested directories and files in each directory

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::tree

Properties detail

$_directoriessource

protected array

Holds array of complete directory paths.

$_errorssource

protected array

Holds errors from last method.

array()

$_filessource

protected array

Holds array of complete file paths.

$_fsortssource

protected array

Functions array to be called depending on the sort type chosen.

array(
    self::SORT_NAME => 'getPathname',
    self::SORT_TIME => 'getCTime'
)

$_messagessource

protected array

Holds messages from last method.

array()

$modesource

public integer

Mode to be used on create. Does nothing on Windows platforms.

0755

$sortsource

public boolean

Sortedness. Whether or not list results should be sorted by name.

Link

http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#Folder::$sort
false

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.8/class-Folder.html