W3cubDocs

/CakePHP 4.1

Class Folder

Folder structure browser, lists folders and files.

Provides an Object interface for Common directory related tasks.

Namespace: Cake\Filesystem

Constants summary

  • string
    MERGE
    'merge'
  • string
    OVERWRITE
    'overwrite'
  • string
    SKIP
    'skip'
  • string
    SORT_NAME
    'name'
  • string
    SORT_TIME
    'time'

Properties 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
    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 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.

  • 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.

  • 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 $path, bool $create, ?int $mode)

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)

Private helper function for findRecursive.

Parameters

string $pattern

Pattern to match against

bool $sort optional

Whether results should be sorted.

Returns

array

Files matching pattern

addPathElement() public static

addPathElement(string $path, mixed $element)

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

string

Combined path

cd() public

cd(string $path)

Change directory to $path.

Parameters

string $path

Path to the directory to change to

Returns

string|false

The new path. Returns false on failure

chmod() public

chmod(string $path, ?int $mode, bool $recursive, array $exceptions)

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.

string[] $exceptions optional

Array of files, directories to skip.

Returns

bool

Success.

copy() public

copy(string $to, array $options)

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::SKIP
  • recursive Whether to copy recursively or not (default: true - recursive)

Parameters

string $to

The directory to copy to.

array $options optional

Array of options (see above).

Returns

bool

Success.

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

string

Set of slashes ("\" or "/")

create() public

create(string $pathname, ?int $mode)

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

Returns TRUE on success, FALSE on failure

delete() public

delete(?string $path)

Recursively Remove directories if the system allows.

Parameters

string|null $path optional

Path of directory to delete

Returns

bool

Success

dirsize() public

dirsize()

Returns the size in bytes of this Folder and its contents.

Returns

int

size in bytes of current folder

errors() public

errors(bool $reset)

get error from latest method

Parameters

bool $reset optional

Reset error stack after reading

Returns

array

find() public

find(string $regexpPattern, mixed $sort)

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

Files that match given pattern

findRecursive() public

findRecursive(string $pattern, mixed $sort)

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

Files matching $pattern

inPath() public

inPath(string $path, bool $reverse)

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 current pwd().

Returns

bool

Throws

InvalidArgumentException
When the given `$path` argument is not an absolute path.

isAbsolute() public static

isAbsolute(string $path)

Returns true if given $path is an absolute path.

Parameters

string $path

Path to check

Returns

bool

true if path is absolute.

isRegisteredStreamWrapper() public static

isRegisteredStreamWrapper(string $path)

Returns true if given $path is a registered stream wrapper.

Parameters

string $path

Path to check

Returns

bool

True if path is registered stream wrapper.

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

bool

true if path ends with slash, false otherwise

isWindowsPath() public static

isWindowsPath(string $path)

Returns true if given $path is a Windows path.

Parameters

string $path

Path to check

Returns

bool

true if windows path, false otherwise

messages() public

messages(bool $reset)

get messages from latest method

Parameters

bool $reset optional

Reset message stack after reading

Returns

array

move() public

move(string $to, array $options)

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::SKIP
  • recursive Whether to copy recursively or not (default: true - recursive)

Parameters

string $to

The directory to move to.

array $options optional

Array of options (see above).

Returns

bool

Success

normalizeFullPath() public static

normalizeFullPath(string $path)

Returns a correct set of slashes for given $path. (\ for Windows paths and / for other paths.)

Parameters

string $path

Path to transform

Returns

string

Path with the correct set of slashes ("\" or "/")

pwd() public

pwd()

Return current path.

Returns

string|null

Current path

read() public

read(mixed $sort, mixed $exceptions, bool $fullPath)

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

Contents of current directory as an array, an empty array on failure

realpath() public

realpath(mixed $path)

Get the real path (taking ".." and such into account)

Parameters

string $path

Path to resolve

Returns

string|false

The resolved path

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

string

Path with ending slash

subdirectories() public

subdirectories(?string $path, bool $fullPath)

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

Array of subdirectories for the provided or current path.

tree() public

tree(?string $path, mixed $exceptions, ?string $type)

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

Array of nested directories and files in each directory

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

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 or not 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.1/class-Cake.Filesystem.Folder.html