W3cubDocs

/CakePHP 4.4

Class
Folder

Folder structure browser, lists folders and files. Provides an Object interface for Common directory related tasks.

Namespace: Cake\Filesystem
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::SKIP
  • recursive 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 current pwd().

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::SKIP
  • recursive 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