Class Folder
Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
Link: https://book.cakephp.org/3/en/core-libraries/file-folder.html#folder-api
Constants
- 
          
          stringMERGE ¶'merge'Default scheme for Folder::copy Recursively merges subfolders with the same name 
- 
          
          stringOVERWRITE ¶'overwrite'Overwrite scheme for Folder::copy subfolders with the same name will be replaced 
- 
          
          stringSKIP ¶'skip'Skip scheme for Folder::copy if a subfolder with the same name exists it will be skipped 
- 
          
          stringSORT_NAME ¶'name'Sort mode by name 
- 
          
          stringSORT_TIME ¶'time'Sort mode by time 
Property Summary
- 
        $_directories protectedarrayHolds array of complete directory paths. 
- 
        $_errors protectedarrayHolds errors from last method. 
- 
        $_files protectedarrayHolds array of complete file paths. 
- 
        $_fsorts protectedstring[]Functions array to be called depending on the sort type chosen. 
- 
        $_messages protectedarrayHolds messages from last method. 
- 
        $mode publicintMode to be used on create. Does nothing on windows platforms. 
- 
        $path publicstringPath to Folder. 
- 
        $sort publicboolSortedness. 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. 
- 
          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() public deprecatedReturns true if the Folder is in the given Cake path. 
- 
          inPath() publicReturns true if the Folder is in the given path. 
- 
          isAbsolute() public staticReturns true if given $path is an absolute path. 
- 
          isRegisteredStreamWrapper() public staticReturns true if given $path is a registered stream wrapper. 
- 
          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. 
- 
          normalizeFullPath() public staticReturns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.) 
- 
          normalizePath() public static deprecatedReturns 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). 
- 
          subdirectories() publicReturns an array of subdirectories for the provided or current path. 
- 
          tree() publicReturns an array of nested directories and files in each directory 
Method Detail
__construct() ¶ public
__construct(string|null $path = null, bool $create = false, int|false $mode = false)Constructor.
Parameters
- 
                string|null$path optional
- Path to folder 
- 
                bool$create optional
- Create folder if not found 
- 
                int|false$mode optional
- Mode (CHMOD) to apply to created folder, false to ignore 
_findRecursive() ¶ protected
_findRecursive(string $pattern, bool $sort = false): arrayPrivate helper function for findRecursive.
Parameters
- 
                string$pattern
- Pattern to match against 
- 
                bool$sort optional
- Whether results should be sorted. 
Returns
arrayFiles matching pattern
addPathElement() ¶ public static
addPathElement(string $path, string|array $element): stringReturns $path with $element added, with correct slash in-between.
Parameters
- 
                string$path
- Path 
- 
                string|array$element
- Element to add at end of path 
Returns
stringCombined path
cd() ¶ public
cd(string $path): string|falseChange directory to $path.
Parameters
- 
                string$path
- Path to the directory to change to 
Returns
string|falseThe new path. Returns false on failure
chmod() ¶ public
chmod(string $path, int|bool $mode = false, bool $recursive = true, array $exceptions = []): boolChange the mode on a directory structure recursively. This includes changing the mode on files as well.
Parameters
- 
                string$path
- The path to chmod. 
- 
                int|bool$mode optional
- Octal value, e.g. 0755. 
- 
                bool$recursive optional
- Chmod recursively, set to false to only change the current directory. 
- 
                array$exceptions optional
- Array of files, directories to skip. 
Returns
boolSuccess.
copy() ¶ public
copy(array|string $options): boolRecursive 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 as integer, e.g. 0775.
- skipFiles/directories to skip.
- schemeFolder::MERGE, Folder::OVERWRITE, Folder::SKIP
- recursiveWhether 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
boolSuccess.
correctSlashFor() ¶ public static
correctSlashFor(string $path): stringReturns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Parameters
- 
                string$path
- Path to check 
Returns
stringSet of slashes ("\" or "/")
create() ¶ public
create(string $pathname, int|bool $mode = false): boolCreate 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(). 
- 
                int|bool$mode optional
- octal value 0755 
Returns
boolReturns TRUE on success, FALSE on failure
delete() ¶ public
delete(string|null $path = null): boolRecursively Remove directories if the system allows.
Parameters
- 
                string|null$path optional
- Path of directory to delete 
Returns
boolSuccess
dirsize() ¶ public
dirsize(): intReturns the size in bytes of this Folder and its contents.
Returns
intsize in bytes of current folder
errors() ¶ public
errors(bool $reset = true): arrayget error from latest method
Parameters
- 
                bool$reset optional
- Reset error stack after reading 
Returns
arrayfind() ¶ public
find(string $regexpPattern = '.*', bool $sort = false): arrayReturns an array of all matching files in current directory.
Parameters
- 
                string$regexpPattern optional
- Preg_match pattern (Defaults to: .*) 
- 
                bool$sort optional
- Whether results should be sorted. 
Returns
arrayFiles that match given pattern
findRecursive() ¶ public
findRecursive(string $pattern = '.*', bool $sort = false): arrayReturns an array of all matching files in and below current directory.
Parameters
- 
                string$pattern optional
- Preg_match pattern (Defaults to: .*) 
- 
                bool$sort optional
- Whether results should be sorted. 
Returns
arrayFiles matching $pattern
inCakePath() ¶ public
inCakePath(string $path = ''): boolReturns true if the Folder is in the given Cake path.
Parameters
- 
                string$path optional
- The path to check. 
Returns
boolinPath() ¶ public
inPath(string $path, bool $reverse = false): boolReturns true if the Folder is in the given path.
Parameters
- 
                string$path
- The absolute path to check that the current - pwd()resides within.
- 
                bool$reverse optional
- Reverse the search, check if the given - $pathresides within the current- pwd().
Returns
boolThrows
InvalidArgumentExceptionWhen the given `$path` argument is not an absolute path.
isAbsolute() ¶ public static
isAbsolute(string $path): boolReturns true if given $path is an absolute path.
Parameters
- 
                string$path
- Path to check 
Returns
booltrue if path is absolute.
isRegisteredStreamWrapper() ¶ public static
isRegisteredStreamWrapper(string $path): boolReturns true if given $path is a registered stream wrapper.
Parameters
- 
                string$path
- Path to check 
Returns
boolTrue if path is registered stream wrapper.
isSlashTerm() ¶ public static
isSlashTerm(string $path): boolReturns true if given $path ends in a slash (i.e. is slash-terminated).
Parameters
- 
                string$path
- Path to check 
Returns
booltrue if path ends with slash, false otherwise
isWindowsPath() ¶ public static
isWindowsPath(string $path): boolReturns true if given $path is a Windows path.
Parameters
- 
                string$path
- Path to check 
Returns
booltrue if windows path, false otherwise
messages() ¶ public
messages(bool $reset = true): arrayget messages from latest method
Parameters
- 
                bool$reset optional
- Reset message stack after reading 
Returns
arraymove() ¶ public
move(array|string $options): boolRecursive 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
- recursiveWhether to copy recursively or not (default: true - recursive)
Parameters
- 
                array|string$options
- (to, from, chmod, skip, scheme) 
Returns
boolSuccess
normalizeFullPath() ¶ public static
normalizeFullPath(string $path): stringReturns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Parameters
- 
                string$path
- Path to transform 
Returns
stringPath with the correct set of slashes ("\" or "/")
normalizePath() ¶ public static
normalizePath(string $path): stringReturns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Parameters
- 
                string$path
- Path to check 
Returns
stringSet of slashes ("\" or "/")
read() ¶ public
read(string|bool $sort = self::SORT_NAME, array|bool $exceptions = false, bool $fullPath = false): arrayReturns an array of the contents of the current directory. The returned array holds two arrays: One of directories and one of files.
Parameters
- 
                string|bool$sort optional
- Whether you want the results sorted, set this and the sort property to false to get unsorted results. 
- 
                array|bool$exceptions optional
- Either an array or boolean true will not grab dot files 
- 
                bool$fullPath optional
- True returns the full path 
Returns
arrayContents of current directory as an array, an empty array on failure
realpath() ¶ public
realpath(string $path): string|falseGet the real path (taking ".." and such into account)
Parameters
- 
                string$path
- Path to resolve 
Returns
string|falseThe resolved path
slashTerm() ¶ public static
slashTerm(string $path): stringReturns $path with added terminating slash (corrected for Windows or other OS).
Parameters
- 
                string$path
- Path to check 
Returns
stringPath with ending slash
subdirectories() ¶ public
subdirectories(string|null $path = null, bool $fullPath = true): arrayReturns an array of subdirectories for the provided or current path.
Parameters
- 
                string|null$path optional
- The directory path to get subdirectories for. 
- 
                bool$fullPath optional
- Whether to return the full path or only the directory name. 
Returns
arrayArray of subdirectories for the provided or current path.
tree() ¶ public
tree(string|null $path = null, array|bool $exceptions = false, string|null $type = null): arrayReturns an array of nested directories and files in each directory
Parameters
- 
                string|null$path optional
- the directory path to build the tree from 
- 
                array|bool$exceptions optional
- Either an array of files/folder to exclude or boolean true to not grab dot files/folders 
- 
                string|null$type optional
- either 'file' or 'dir'. Null returns both files and directories 
Returns
arrayArray of nested directories and files in each directory
