Class Folder
Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
Copyright: Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: Cake/Utility/Folder.php
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. -
$_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. -
_tree() protected
Private method to list directories and files in each directory -
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. Can be used to create deep path structures like
/foo/bar/baz/shoe/horn
-
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 File is in a given CakePath. -
inPath() public
Returns true if the File is in given path. -
isAbsolute() public static
Returns true if given $path is an absolute path. -
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() public ¶
__construct( string $path = false , boolean $create = false , mixed $mode = false )
Constructor.
Parameters
- string $path optional false
- Path to folder
- boolean $create optional false
- Create folder if not found
- mixed $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
_tree() protected ¶
_tree( string $path , mixed $exceptions )
Private method to list directories and files in each directory
Parameters
- string $path
- The Path to read.
- mixed $exceptions
- Array of files to exclude from the read that will be performed.
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( mixed $options = array() )
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.skip
Files/directories to skip.
Parameters
- mixed $options optional array()
- 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
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
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
move() 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.
Parameters
- array $options
- (to, from, chmod, skip)
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 , mixed $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.
- mixed $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 , mixed $exceptions = true , 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
- mixed $exceptions optional true
- Array of files to exclude, false to exclude dot files.
- string $type optional null
- either file or dir. null returns both files and directories
Returns
array of nested directories and files in each directory