Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
string
'merge'
Default scheme for Folder::copy Recursively merges subfolders with the same name
string
'overwrite'
Overwrite scheme for Folder::copy subfolders with the same name will be replaced
string
'skip'
Skip scheme for Folder::copy if a subfolder with the same name exists it will be skipped
string
'name'
Sort mode by name
string
'time'
Sort mode by time
array
Holds array of complete directory paths.
array
Holds errors from last method.
array
Holds array of complete file paths.
array<string>
Functions array to be called depending on the sort type chosen.
array
Holds messages from last method.
int
Mode to be used on create. Does nothing on windows platforms.
string
Path to Folder.
bool
Sortedness. Whether list results should be sorted by name.
Constructor.
Private helper function for findRecursive.
Returns $path with $element added, with correct slash in-between.
Change directory to $path.
Change the mode on a directory structure recursively. This includes changing the mode on files as well.
Recursive directory copy.
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Create a directory structure recursively.
Recursively Remove directories if the system allows.
Returns the size in bytes of this Folder and its contents.
get error from latest method
Returns an array of all matching files in current directory.
Returns an array of all matching files in and below current directory.
Returns true if the Folder is in the given path.
Returns true if given $path is an absolute path.
Returns true if given $path is a registered stream wrapper.
Returns true if given $path ends in a slash (i.e. is slash-terminated).
Returns true if given $path is a Windows path.
get messages from latest method
Recursive directory move.
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Return current path.
Returns an array of the contents of the current directory. The returned array holds two arrays: One of directories and one of files.
Get the real path (taking ".." and such into account)
Returns $path with added terminating slash (corrected for Windows or other OS).
Returns an array of subdirectories for the provided or current path.
Returns an array of nested directories and files in each directory
__construct(string|null $path = null, bool $create = false, int|null $mode = null)
Constructor.
string|null
$path optional Path to folder
bool
$create optional Create folder if not found
int|null
$mode optional Mode (CHMOD) to apply to created folder, false to ignore
_findRecursive(string $pattern, bool $sort = false): array
Private helper function for findRecursive.
string
$pattern Pattern to match against
bool
$sort optional Whether results should be sorted.
array
addPathElement(string $path, array<string>|string $element): string
Returns $path with $element added, with correct slash in-between.
string
$path Path
array<string>|string
$element Element to add at end of path
string
cd(string $path): string|false
Change directory to $path.
string
$path Path to the directory to change to
string|false
chmod(string $path, int|null $mode = null, bool $recursive = true, array<string> $exceptions = []): bool
Change the mode on a directory structure recursively. This includes changing the mode on files as well.
string
$path The path to chmod.
int|null
$mode optional Octal value, e.g. 0755.
bool
$recursive optional Chmod recursively, set to false to only change the current directory.
array<string>
$exceptions optional Array of files, directories to skip.
bool
copy(string $to, array<string, mixed> $options = []): bool
Recursive directory copy.
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)string
$to The directory to copy to.
array<string, mixed>
$options optional Array of options (see above).
bool
correctSlashFor(string $path): string
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
string
$path Path to check
string
create(string $pathname, int|null $mode = null): bool
Create a directory structure recursively.
Can be used to create deep path structures like /foo/bar/baz/shoe/horn
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|null
$mode optional octal value 0755
bool
delete(string|null $path = null): bool
Recursively Remove directories if the system allows.
string|null
$path optional Path of directory to delete
bool
dirsize(): int
Returns the size in bytes of this Folder and its contents.
int
errors(bool $reset = true): array
get error from latest method
bool
$reset optional Reset error stack after reading
array
find(string $regexpPattern = '.*', string|bool $sort = false): array<string>
Returns an array of all matching files in current directory.
string
$regexpPattern optional Preg_match pattern (Defaults to: .*)
string|bool
$sort optional Whether results should be sorted.
array<string>
findRecursive(string $pattern = '.*', string|bool $sort = false): array
Returns an array of all matching files in and below current directory.
string
$pattern optional Preg_match pattern (Defaults to: .*)
string|bool
$sort optional Whether results should be sorted.
array
inPath(string $path, bool $reverse = false): bool
Returns true if the Folder is in the given path.
string
$path The absolute path to check that the current pwd()
resides within.
bool
$reverse optional Reverse the search, check if the given $path
resides within the current pwd()
.
bool
InvalidArgumentException
isAbsolute(string $path): bool
Returns true if given $path is an absolute path.
string
$path Path to check
bool
isRegisteredStreamWrapper(string $path): bool
Returns true if given $path is a registered stream wrapper.
string
$path Path to check
bool
isSlashTerm(string $path): bool
Returns true if given $path ends in a slash (i.e. is slash-terminated).
string
$path Path to check
bool
isWindowsPath(string $path): bool
Returns true if given $path is a Windows path.
string
$path Path to check
bool
messages(bool $reset = true): array
get messages from latest method
bool
$reset optional Reset message stack after reading
array
move(string $to, array<string, mixed> $options = []): bool
Recursive directory move.
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)string
$to The directory to move to.
array<string, mixed>
$options optional Array of options (see above).
bool
normalizeFullPath(string $path): string
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
string
$path Path to transform
string
pwd(): string|null
Return current path.
string|null
read(string|bool $sort = self::SORT_NAME, array|bool $exceptions = false, bool $fullPath = false): array
Returns an array of the contents of the current directory. The returned array holds two arrays: One of directories and one of files.
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
array
realpath(string $path): string|false
Get the real path (taking ".." and such into account)
string
$path Path to resolve
string|false
slashTerm(string $path): string
Returns $path with added terminating slash (corrected for Windows or other OS).
string
$path Path to check
string
subdirectories(string|null $path = null, bool $fullPath = true): array
Returns an array of subdirectories for the provided or current path.
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.
array
tree(string|null $path = null, array|bool $exceptions = false, string|null $type = null): array
Returns an array of nested directories and files in each directory
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
array
Holds array of complete directory paths.
array
Holds errors from last method.
array
Holds array of complete file paths.
array
Functions array to be called depending on the sort type chosen.
array<string>
Holds messages from last method.
array
Mode to be used on create. Does nothing on windows platforms.
int
Path to Folder.
string
Sortedness. Whether list results should be sorted by name.
bool
© 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/4.4/class-Cake.Filesystem.Folder.html