On this page
Class
Folder
Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
Deprecated: 4.0.0 Will be removed in 5.0.
Link: https://book.cakephp.org/4/en/core-libraries/file-folder.html#folder-api
Constants
-
string
MERGE'merge'
Default scheme for Folder::copy Recursively merges subfolders with the same name
-
string
OVERWRITE'overwrite'
Overwrite scheme for Folder::copy subfolders with the same name will be replaced
-
string
SKIP'skip'
Skip scheme for Folder::copy if a subfolder with the same name exists it will be skipped
-
string
SORT_NAME'name'
Sort mode by name
-
string
SORT_TIME'time'
Sort mode by time
Property Summary
-
$_directories protected
array
Holds array of complete directory paths.
-
$_errors protected
array
Holds errors from last method.
-
$_files protected
array
Holds array of complete file paths.
-
$_fsorts protected
array<string>
Functions array to be called depending on the sort type chosen.
-
$_messages protected
array
Holds messages from last method.
-
$mode public
int
Mode to be used on create. Does nothing on windows platforms.
-
$path public
string
Path to Folder.
-
$sort public
bool
Sortedness. Whether 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.
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.)
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, bool $create = false, int|null $mode = null)
Constructor.
Parameters
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() protected
_findRecursive(string $pattern, bool $sort = false): array
Private helper function for findRecursive.
Parameters
string
$pattern-
Pattern to match against
bool
$sort optional-
Whether results should be sorted.
Returns
array
addPathElement() public static
addPathElement(string $path, array<string>|string $element): string
Returns $path with $element added, with correct slash in-between.
Parameters
string
$path-
Path
array<string>|string
$element-
Element to add at end of path
Returns
string
cd() public
cd(string $path): string|false
Change directory to $path.
Parameters
string
$path-
Path to the directory to change to
Returns
string|false
chmod() public
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.
Parameters
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.
Returns
bool
copy() public
copy(string $to, array<string, mixed> $options = []): bool
Recursive directory copy.
Options
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
string
$to-
The directory to copy to.
array<string, mixed>
$options optional-
Array of options (see above).
Returns
bool
correctSlashFor() public static
correctSlashFor(string $path): string
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Parameters
string
$path-
Path to check
Returns
string
create() public
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
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|null
$mode optional-
octal value 0755
Returns
bool
delete() public
delete(string|null $path = null): bool
Recursively Remove directories if the system allows.
Parameters
string|null
$path optional-
Path of directory to delete
Returns
bool
dirsize() public
dirsize(): int
Returns the size in bytes of this Folder and its contents.
Returns
int
errors() public
errors(bool $reset = true): array
get error from latest method
Parameters
bool
$reset optional-
Reset error stack after reading
Returns
array
find() public
find(string $regexpPattern = '.*', string|bool $sort = false): array<string>
Returns an array of all matching files in current directory.
Parameters
string
$regexpPattern optional-
Preg_match pattern (Defaults to: .*)
string|bool
$sort optional-
Whether results should be sorted.
Returns
array<string>
findRecursive() public
findRecursive(string $pattern = '.*', string|bool $sort = false): array
Returns an array of all matching files in and below current directory.
Parameters
string
$pattern optional-
Preg_match pattern (Defaults to: .*)
string|bool
$sort optional-
Whether results should be sorted.
Returns
array
inPath() public
inPath(string $path, bool $reverse = false): bool
Returns 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
$path
resides within the currentpwd()
.
Returns
bool
Throws
InvalidArgumentException
When the given `$path` argument is not an absolute path.
isAbsolute() public static
isAbsolute(string $path): bool
Returns true if given $path is an absolute path.
Parameters
string
$path-
Path to check
Returns
bool
isRegisteredStreamWrapper() public static
isRegisteredStreamWrapper(string $path): bool
Returns true if given $path is a registered stream wrapper.
Parameters
string
$path-
Path to check
Returns
bool
isSlashTerm() public static
isSlashTerm(string $path): bool
Returns true if given $path ends in a slash (i.e. is slash-terminated).
Parameters
string
$path-
Path to check
Returns
bool
isWindowsPath() public static
isWindowsPath(string $path): bool
Returns true if given $path is a Windows path.
Parameters
string
$path-
Path to check
Returns
bool
messages() public
messages(bool $reset = true): array
get messages from latest method
Parameters
bool
$reset optional-
Reset message stack after reading
Returns
array
move() public
move(string $to, array<string, mixed> $options = []): bool
Recursive directory move.
Options
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
string
$to-
The directory to move to.
array<string, mixed>
$options optional-
Array of options (see above).
Returns
bool
normalizeFullPath() public static
normalizeFullPath(string $path): string
Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)
Parameters
string
$path-
Path to transform
Returns
string
pwd() public
pwd(): string|null
Return current path.
Returns
string|null
read() public
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.
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
array
realpath() public
realpath(string $path): string|false
Get the real path (taking ".." and such into account)
Parameters
string
$path-
Path to resolve
Returns
string|false
slashTerm() public static
slashTerm(string $path): string
Returns $path with added terminating slash (corrected for Windows or other OS).
Parameters
string
$path-
Path to check
Returns
string
subdirectories() public
subdirectories(string|null $path = null, bool $fullPath = true): array
Returns 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
array
tree() public
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
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
array
Property Detail
$_directories protected
Holds array of complete directory paths.
Type
array
$_errors protected
Holds errors from last method.
Type
array
$_files protected
Holds array of complete file paths.
Type
array
$_fsorts protected
Functions array to be called depending on the sort type chosen.
Type
array<string>
$_messages protected
Holds messages from last method.
Type
array
$mode public
Mode to be used on create. Does nothing on windows platforms.
Type
int
$path public
Path to Folder.
Type
string
$sort public
Sortedness. Whether list results should be sorted by name.
Type
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