Base: ezcBaseFile
[ ]
[ ]
[ ]
[ ]
[ ]
Class: ezcBaseFile
|
Provides a selection of static independent methods to provide functionality for file and file system handling. [
source]
This example shows how to use the findRecursive method:
1. <?php
2. // lists all the files under /etc (including subdirectories) that end in
3. // .conf
4. $confFiles = ezcBaseFile::findRecursive( "/etc", array( '@\.conf$@' ) );
5.
6. // lists all autoload files in the components source tree and excludes the
7. // ones in the autoload subdirectory. Statistics are returned in the $stats
8. // variable which is passed by reference.
9. $files = ezcBaseFile::findRecursive(
10. "/dat/dev/ezcomponents",
11. array( '@src/.*_autoload.php$@' ),
12. array( '@/autoload/@' ),
13. $stats
14. );
15.
16. // lists all binaries in /bin except the ones starting with a "g"
17. $data = ezcBaseFile::findRecursive( "/bin", array(), array( '@^/bin/g@' ) );
18. ?>
Descendents
| Child Class |
Description |
| ezcFile |
Provides a selection of static independent methods to provide functionality for file and file system handling. This class is deprecated, please use ezcBaseFile instead.
|
Method Summary
|
public static string |
calculateRelativePath(
$path, $base )
Calculates the relative path of the file/directory '$path' to a given $base path. |
|
public static void |
copyRecursive(
$source, $destination, [$depth = -1], [$dirMode = 0775], [$fileMode = 0664] )
Recursively copy a file or directory. |
|
public static array |
findRecursive(
$sourceDir, [$includeFilters = array()], [$excludeFilters = array()], [&$statistics = null], $statistics
)
Finds files recursively on a file system |
|
public static bool |
isAbsolutePath(
$path, [$os = null] )
Returns whether the passed $path is an absolute path, giving the current $os. |
|
public static void |
removeRecursive(
$directory )
Removes files and directories recursively from a file system |
Methods
calculateRelativePath
string calculateRelativePath(
string
$path, string
$base )
Calculates the relative path of the file/directory '$path' to a given $base path.
$path and $base should be fully absolute paths. This function returns the answer of "How do I go from $base to $path". If the $path and $base are the same path, the function returns '.'. This method does not touch the filesystem.
Parameters
| Name |
Type |
Description |
$path |
string |
|
$base |
string |
|
copyRecursive
void copyRecursive(
string
$source, string
$destination, [int
$depth = -1], [int
$dirMode = 0775], [int
$fileMode = 0664] )
Recursively copy a file or directory.
Recursively copy a file or directory in $source to the given destination. If a depth is given, the operation will stop, if the given recursion depth is reached. A depth of -1 means no limit, while a depth of 0 means, that only the current file or directory will be copied, without any recursion.
You may optionally define modes used to create files and directories.
Parameters
| Name |
Type |
Description |
$source |
string |
|
$destination |
string |
|
$depth |
int |
|
$dirMode |
int |
|
$fileMode |
int |
|
Throws
| Class | Description |
ezcBaseFileNotFoundException |
If the $sourceDir directory is not a directory or does not exist. |
ezcBaseFilePermissionException |
If the $sourceDir directory could not be opened for reading, or the destination is not writeable. |
findRecursive
array findRecursive(
string
$sourceDir, [
$includeFilters = array()], [
$excludeFilters = array()], [
&$statistics = null], array()
$statistics
)
Finds files recursively on a file system
With this method you can scan the file system for files. You can use $includeFilters to include only specific files, and $excludeFilters to exclude certain files from being returned. The function will always go into subdirectories even if the entry would not have passed the filters.
Filters are regular expressions and are therefore required to have starting and ending delimiters. The Perl Compatible syntax is used as regular expression language.
If you pass an empty array to the $statistics argument, the function will in details about the number of files found into the 'count' array element, and the total filesize in the 'size' array element. Because this argument is passed by reference, you *have* to pass a variable and you can not pass a constant value such as "array()".
Parameters
| Name |
Type |
Description |
$sourceDir |
string |
|
$includeFilters |
array(string) |
|
$excludeFilters |
array(string) |
|
$statistics
|
array() |
|
&$statistics |
|
|
Throws
| Class | Description |
ezcBaseFileNotFoundException |
if the $sourceDir directory is not a directory or does not exist. |
ezcBaseFilePermissionException |
if the $sourceDir directory could not be opened for reading. |
isAbsolutePath
bool isAbsolutePath(
string
$path, [string
$os = null] )
Returns whether the passed $path is an absolute path, giving the current $os.
With the $os parameter you can tell this function to use the semantics for a different operating system to determine whether a path is absolute. The $os argument defaults to the OS that the script is running on.
Parameters
| Name |
Type |
Description |
$path |
string |
|
$os |
string |
|
removeRecursive
void removeRecursive(
string
$directory )
Removes files and directories recursively from a file system
This method recursively removes the $directory and all its contents. You should be extremely careful with this method as it has the potential to erase everything that the current user has access to.
Parameters
| Name |
Type |
Description |
$directory |
string |
|
Last updated: Tue, 02 Dec 2008