Class Folder

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

Constants summary

  • string

    MERGE
    'merge'
  • string

    OVERWRITE
    'overwrite'
  • string

    SKIP
    'skip'
  • string

    SORT_NAME
    'name'
  • string

    SORT_TIME
    'time'

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 deprecated
    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.
  • normalizeFullPath() public static
    Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
  • normalizePath() public static deprecated
    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).
  • Returns an array of subdirectories for the provided or current path.
  • tree() public
    Returns an array of nested directories and files in each directory

Method Detail

__construct()source public

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

Constructor.

Parameters

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

_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

cd()source public

cd( string $path )

Change directory to $path.

Parameters

string $path
Path to the directory to change to

Returns

string|boolean
The new path. Returns false on failure

chmod()source public

chmod( string $path , integer|boolean $mode = false , boolean $recursive = true , array $exceptions = [] )

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|boolean $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 of files, directories to skip.

Returns

boolean
Success.

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
  • recursive Whether to copy recursively or not (default: true - recursive)

Parameters

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

Returns

boolean
Success.

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 "/")

create()source public

create( string $pathname , integer|boolean $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|boolean $mode optional false
octal value 0755

Returns

boolean
Returns TRUE on success, FALSE on failure

delete()source public

delete( string|null $path = null )

Recursively Remove directories if the system allows.

Parameters

string|null $path optional null
Path of directory to delete

Returns

boolean
Success

dirsize()source public

dirsize( )

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

Returns

integer
size in bytes of current folder

errors()source public

errors( boolean $reset = true )

get error from latest method

Parameters

boolean $reset optional true
Reset error stack after reading

Returns

array

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

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

inCakePath()source public deprecated

inCakePath( string $path = '' )

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

Deprecated

3.2.12 This method will be removed in 4.0.0. Use inPath() instead.

Parameters

string $path optional ''
The path to check.

Returns

boolean

inPath()source public

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

Returns true if the Folder is in the given path.

Parameters

string $path
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.

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.

isRegisteredStreamWrapper()source public static

isRegisteredStreamWrapper( string $path )

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

Parameters

string $path
Path to check

Returns

boolean
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

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

messages()source public

messages( boolean $reset = true )

get messages from latest method

Parameters

boolean $reset optional true
Reset message stack after reading

Returns

array

move()source public

move( array|string $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
  • recursive Whether to copy recursively or not (default: true - recursive)

Parameters

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

Returns

boolean
Success

normalizeFullPath()source public static

normalizeFullPath( string $path )

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

Parameters

string $path
Path to transform

Returns

string
Path with the correct set of slashes ("\" or "/")

normalizePath()source public static deprecated

normalizePath( string $path )

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

Deprecated

3.7.0 This method will be removed in 4.0.0. Use correctSlashFor() instead.

Parameters

string $path
Path to check

Returns

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

pwd()source public

pwd( )

Return current path.

Returns

string
Current path

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

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

realpath()source public

realpath( string $path )

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

Parameters

string $path
Path to resolve

Returns

string|false
The resolved path

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

subdirectories()source public

subdirectories( string|null $path = null , boolean $fullPath = true )

Returns an array of subdirectories for the provided or current path.

Parameters

string|null $path optional null
The directory path to get subdirectories for.
boolean $fullPath optional true
Whether to return the full path or only the directory name.

Returns

array
Array of subdirectories for the provided or current path.

tree()source public

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

Returns an array of nested directories and files in each directory

Parameters

string|null $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|null $type optional null
either 'file' or 'dir'. Null returns both files and directories

Returns

array
Array of nested directories and files in each directory

Properties detail

$_directoriessource

protected array

Holds array of complete directory paths.

$_errorssource

protected array

Holds errors from last method.

[]

$_filessource

protected array

Holds array of complete file paths.

$_fsortssource

protected array

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

[
    self::SORT_NAME => 'getPathname',
    self::SORT_TIME => 'getCTime'
]

$_messagessource

protected array

Holds messages from last method.

[]

$modesource

public integer

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

0755

$pathsource

public string

Path to Folder.

$sortsource

public boolean

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

false

© 2005–present 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.
https://api.cakephp.org/3.7/class-Cake.Filesystem.Folder.html