Class Folder
Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.
Link: http://book.cakephp.org/3.0/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 protected
arrayHolds array of complete directory paths.
-
$_errors protected
arrayHolds errors from last method.
-
$_files protected
arrayHolds array of complete file paths.
-
$_fsorts protected
Functions array to be called depending on the sort type chosen.
-
$_messages protected
arrayHolds messages from last method.
-
$mode public
intMode to be used on create. Does nothing on windows platforms.
-
$path public
stringPath to Folder.
-
$sort public
boolSortedness. Whether or not 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.
-
inCakePath() public deprecated
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.
-
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.
-
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).
-
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|bool $mode = false)
Constructor.
Parameters
-
string|null$path optional Path to folder
-
bool$create optional Create folder if not found
-
int|bool$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
arrayaddPathElement() ¶ public static
addPathElement(string $path, string|array $element): string
Returns $path with $element added, with correct slash in-between.
Parameters
-
string$path Path
-
string|array$element Element to add at end of path
Returns
stringcd() ¶ public
cd(string $path): string
Change directory to $path.
Parameters
-
string$path Path to the directory to change to
Returns
stringchmod() ¶ public
chmod(string $path, int|bool $mode = false, bool $recursive = true, array $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|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
boolcopy() ¶ public
copy(array|string $options): bool
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 as integer, e.g. 0775.skipFiles/directories to skip.schemeFolder::MERGE, Folder::OVERWRITE, Folder::SKIPrecursiveWhether 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
boolcorrectSlashFor() ¶ 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
stringcreate() ¶ public
create(string $pathname, int|bool $mode = false): 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|bool$mode optional octal value 0755
Returns
booldelete() ¶ 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
booldirsize() ¶ public
dirsize(): int
Returns the size in bytes of this Folder and its contents.
Returns
interrors() ¶ public
errors(bool $reset = true): array
get error from latest method
Parameters
-
bool$reset optional Reset error stack after reading
Returns
arrayfind() ¶ public
find(string $regexpPattern = '.*', bool $sort = false): array
Returns 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
arrayfindRecursive() ¶ public
findRecursive(string $pattern = '.*', 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: .*)
-
bool$sort optional Whether results should be sorted.
Returns
arrayinCakePath() ¶ public
inCakePath(string $path = ''): bool
Returns true if the File is in a given CakePath.
Parameters
-
string$path optional The path to check.
Returns
boolinPath() ¶ public
inPath(string $path = '', bool $reverse = false): bool
Returns true if the File is in given path.
Parameters
-
string$path optional The path to check that the current pwd() resides with in.
-
bool$reverse optional Reverse the search, check that pwd() resides within $path.
Returns
boolisAbsolute() ¶ public static
isAbsolute(string $path): bool
Returns true if given $path is an absolute path.
Parameters
-
string$path Path to check
Returns
boolisRegisteredStreamWrapper() ¶ public static
isRegisteredStreamWrapper(string $path): bool
Returns true if given $path is a registered stream wrapper.
Parameters
-
string$path Path to check
Returns
boolisSlashTerm() ¶ 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
boolisWindowsPath() ¶ public static
isWindowsPath(string $path): bool
Returns true if given $path is a Windows path.
Parameters
-
string$path Path to check
Returns
boolmessages() ¶ public
messages(bool $reset = true): array
get messages from latest method
Parameters
-
bool$reset optional Reset message stack after reading
Returns
arraymove() ¶ public
move(array|string $options): bool
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::SKIPrecursiveWhether to copy recursively or not (default: true - recursive)
Parameters
-
array|string$options (to, from, chmod, skip, scheme)
Returns
boolnormalizePath() ¶ public static
normalizePath(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
stringread() ¶ 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
arrayrealpath() ¶ public
realpath(string $path): string
Get the real path (taking ".." and such into account)
Parameters
-
string$path Path to resolve
Returns
stringslashTerm() ¶ 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
stringsubdirectories() ¶ 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
arraytree() ¶ 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