Class Folder
Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Location: Cake/Utility/Folder.php
Properties summary
- 
			$_directoriesprotectedarrayHolds array of complete directory paths.
- 
			$_errorsprotectedarrayHolds errors from last method.
- 
			$_filesprotectedarrayHolds array of complete file paths.
- 
			$_messagesprotectedarrayHolds messages from last method.
- 
			$modepublicintegerMode to be used on create. Does nothing on windows platforms.
- 
			$pathpublicstringPath to Folder.
- 
			$sortpublicbooleanSortedness. Whether or not list results should be sorted by name. 
Method Summary
- 
			__construct() publicConstructor.
- 
			_findRecursive() protectedPrivate helper function for findRecursive.
- 
			addPathElement() public staticReturns $path with $element added, with correct slash in-between.
- 
			cd() publicChange directory to $path.
- 
			chmod() publicChange the mode on a directory structure recursively. This includes changing the mode on files as well.
- 
			copy() publicRecursive directory copy.
- 
			correctSlashFor() public staticReturns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
- 
			create() publicCreate a directory structure recursively. Can be used to create deep path structures like /foo/bar/baz/shoe/horn
- 
			delete() publicRecursively Remove directories if the system allows.
- 
			dirsize() publicReturns the size in bytes of this Folder and its contents.
- 
			errors() publicget error from latest method
- 
			find() publicReturns an array of all matching files in current directory.
- 
			findRecursive() publicReturns an array of all matching files in and below current directory.
- 
			inCakePath() publicReturns true if the File is in a given CakePath.
- 
			inPath() publicReturns true if the File is in given path.
- 
			isAbsolute() public staticReturns true if given $path is an absolute path.
- 
			isSlashTerm() public staticReturns true if given $path ends in a slash (i.e. is slash-terminated).
- 
			isWindowsPath() public staticReturns true if given $path is a Windows path.
- 
			messages() publicget messages from latest method
- 
			move() publicRecursive directory move.
- 
			normalizePath() public staticReturns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
- 
			pwd() publicReturn current path.
- 
			read() publicReturns an array of the contents of the current directory. The returned array holds two arrays: One of directories and one of files. 
- 
			realpath() publicGet the real path (taking ".." and such into account)
- 
			slashTerm() public staticReturns $path with added terminating slash (corrected for Windows or other OS).
- 
			tree() publicReturns an array of nested directories and files in each directory
Method Detail
__construct() 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
_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 $element )
Returns $path with $element added, with correct slash in-between.
Parameters
- string $path
- Path
- string $element
- Element to and at end of path
Returns
Combined path
Link
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
Link
chmod() 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 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
Returns TRUE on success, FALSE on failure
Link
copy() public ¶
copy( array|string $options )
Recursive directory copy.
Options
- toThe directory to copy to.
- fromThe directory to copy from, this will cause a cd() to occur, changing the results of pwd().
- modeThe mode to copy the files/directories with.
- skipFiles/directories to skip.
- schemeFolder::MERGE, Folder::OVERWRITE, Folder::SKIP
Parameters
- array|string $options
- Either an array of options (see above) or a string of the destination directory.
Returns
Success
Link
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 "/")
Link
create() 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
- integer $mode optional false
- octal value 0755
Returns
Returns TRUE on success, FALSE on failure
Link
delete() public ¶
delete( string $path = null )
Recursively Remove directories if the system allows.
Parameters
- string $path optional null
- Path of directory to delete
Returns
Success
Link
dirsize() public ¶
dirsize( )
Returns the size in bytes of this Folder and its contents.
Returns
size in bytes of current folder
Link
errors() public ¶
errors( boolean $reset = true )
get error from latest method
Parameters
- boolean $reset optional true
- Reset error stack after reading
Returns
Link
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
Link
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
Link
inCakePath() public ¶
inCakePath( string $path = '' )
Returns true if the File is in a given CakePath.
Parameters
- string $path optional ''
- The path to check.
Returns
Link
inPath() public ¶
inPath( string $path = '' , boolean $reverse = false )
Returns true if the File is in given path.
Parameters
- string $path optional ''
- The path to check that the current pwd() resides with in.
- boolean $reverse optional false
- Reverse the search, check that pwd() resides within $path.
Returns
Link
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.
Link
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
Link
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
Link
messages() public ¶
messages( boolean $reset = true )
get messages from latest method
Parameters
- boolean $reset optional true
- Reset message stack after reading
Returns
Link
move() public ¶
move( array $options )
Recursive directory move.
Options
- toThe directory to copy to.
- fromThe directory to copy from, this will cause a cd() to occur, changing the results of pwd().
- chmodThe mode to copy the files/directories with.
- skipFiles/directories to skip.
- schemeFolder::MERGE, Folder::OVERWRITE, Folder::SKIP
Parameters
- array $options
- (to, from, chmod, skip, scheme)
Returns
Success
Link
normalizePath() 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
Set of slashes ("\" or "/")
Link
read() public ¶
read( boolean $sort = true , 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
- boolean $sort optional true
- 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
Link
realpath() public ¶
realpath( string $path )
Get the real path (taking ".." and such into account)
Parameters
- string $path
- Path to resolve
Returns
The resolved path
Link
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
Link
tree() 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
array of nested directories and files in each directory
