Class Folder
Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
Link: https://book.cakephp.org/3.0/en/core-libraries/file-folder.html#folder-api
Location: Filesystem/Folder.php
Constants summary
Properties summary
-
$_directories
protectedarray
Holds array of complete directory paths. -
$_errors
protectedarray
Holds errors from last method. -
$_files
protectedarray
Holds array of complete file paths. -
$_fsorts
protectedarray
Functions array to be called depending on the sort type chosen. -
$_messages
protectedarray
Holds messages from last method. -
$mode
publicinteger
Mode to be used on create. Does nothing on windows platforms. -
$path
publicstring
Path to Folder. -
$sort
publicboolean
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. -
findRecursive() public
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. -
isRegisteredStreamWrapper() public static
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
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). -
subdirectories() public
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() 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() 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
Files matching pattern
addPathElement() 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
Combined path
cd() public ¶
cd( string $path )
Change directory to $path.
Parameters
- string $path
- Path to the directory to change to
Returns
The new path. Returns false on failure
chmod() 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
Success.
copy() 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::SKIPrecursive
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
Success.
correctSlashFor() 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
Set of slashes ("\" or "/")
create() 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
Returns TRUE on success, FALSE on failure
delete() 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
Success
dirsize() public ¶
dirsize( )
Returns the size in bytes of this Folder and its contents.
Returns
size in bytes of current folder
errors() public ¶
errors( boolean $reset true )
get error from latest method
Parameters
- boolean $reset optional true
- Reset error stack after reading
Returns
find() 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
Files that match given pattern
findRecursive() 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
Files matching $pattern
inCakePath() public ¶
inCakePath( string $path '' )
Returns true if the Folder is in the given Cake path.
Deprecated
Parameters
- string $path optional ''
- The path to check.
Returns
inPath() 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 currentpwd()
.
Returns
Throws
When the given
$path
argument is not an absolute path.isAbsolute() public static ¶
isAbsolute( string $path )
Returns true if given $path is an absolute path.
Parameters
- string $path
- Path to check
Returns
true if path is absolute.
isRegisteredStreamWrapper() public static ¶
isRegisteredStreamWrapper( string $path )
Returns true if given $path is a registered stream wrapper.
Parameters
- string $path
- Path to check
Returns
True if path is registered stream wrapper.
isSlashTerm() 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
true if path ends with slash, false otherwise
isWindowsPath() public static ¶
isWindowsPath( string $path )
Returns true if given $path is a Windows path.
Parameters
- string $path
- Path to check
Returns
true if windows path, false otherwise
messages() public ¶
messages( boolean $reset true )
get messages from latest method
Parameters
- boolean $reset optional true
- Reset message stack after reading
Returns
move() 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::SKIPrecursive
Whether to copy recursively or not (default: true - recursive)
Parameters
- array|string $options
- (to, from, chmod, skip, scheme)
Returns
Success
normalizeFullPath() 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
Path with the correct set of slashes ("\" or "/")
normalizePath() public static ¶
normalizePath( string $path )
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Deprecated
Parameters
- string $path
- Path to check
Returns
Set of slashes ("\" or "/")
read() 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
Contents of current directory as an array, an empty array on failure
realpath() public ¶
realpath( string $path )
Get the real path (taking ".." and such into account)
Parameters
- string $path
- Path to resolve
Returns
The resolved path
slashTerm() public static ¶
slashTerm( string $path )
Returns $path with added terminating slash (corrected for Windows or other OS).
Parameters
- string $path
- Path to check
Returns
Path with ending slash
subdirectories() 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 of subdirectories for the provided or current path.
tree() 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 of nested directories and files in each directory