UnixFileSystem class.

This class encapsulates the basic file system functions for platforms using the unix (posix)-stylish filesystem. It wraps php native functions suppressing normal PHP error reporting and instead uses Exception to report and error.

This class is part of a oop based filesystem abstraction and targeted to run on all supported php platforms.

Note: For debugging turn track_errors on in the php.ini. The error messages and log messages from this class will then be clearer because $php_errormsg is passed as part of the message.

FIXME: - Comments - Error handling reduced to min, error are handled by PhingFile mainly

author Andreas Aderhold, andi@binarycloud.com
version $Id: 43eeab8bf90dfca56552b4ad3d57d97bdee1acc9 $
package phing.system.io

 Methods

Whether file can be deleted.

canDelete(\PhingFile $f) : boolean

Parameters

Returns

boolean

canonicalize filename by checking on disk

canonicalize(string $strPath) : mixed
Inherited
inherited_from \FileSystem::canonicalize()

Parameters

$strPath

string

Returns

mixedCanonical path or false if the file doesn't exist.

Check whether the file or directory denoted by the given abstract pathname may be accessed by this process.

checkAccess(\PhingFile $f, boolean $write) 
Inherited

If the second argument is false, then a check for read access is made; if the second argument is true, then a check for write (not read-write) access is made. Return false if access is denied or an I/O error occurs.

inherited_from \FileSystem::checkAccess()

Parameters

$write

boolean

Change the group on a file or directory.

chgrp(string $pathname, string $group) : void
Inherited
inherited_from \FileSystem::chgrp()

Parameters

$pathname

string

Path and name of file or directory.

$group

string

The group of the file or directory. See http://us.php.net/chgrp

Exceptions

\IOException if operation failed.

Change the permissions on a file or directory.

chmod(string $pathname, int $mode) : void
Inherited
inherited_from \FileSystem::chmod()

Parameters

$pathname

string

Path and name of file or directory.

$mode

int

The mode (permissions) of the file or directory. If using octal add leading 0. eg. 0777. Mode is affected by the umask system setting.

Exceptions

\IOException if operation failed.

Change the ownership on a file or directory.

chown(string $pathname, string $user) : void
Inherited
inherited_from \FileSystem::chown()

Parameters

$pathname

string

Path and name of file or directory.

$user

string

The user name or number of the file or directory. See http://us.php.net/chown

Exceptions

\Exception if operation failed.

compares file paths lexicographically

compare(\PhingFile $f1, \PhingFile $f2) 

Parameters

Compare the modified time of two files.

compareMTimes(\file1 $file1, \file2 $file2) : \Int.
Inherited
inherited_from \FileSystem::compareMTimes()

Parameters

$file1

\file1

String. Path and name of file1.

$file2

\file2

String. Path and name of file2.

Exceptions

\Exception - if cannot get modified time of either file.

Returns

\Int.1 if file1 is newer. -1 if file2 is newer. 0 if files have the same time. Err object on failure.

Copy a file, takes care of symbolic links

copy(\PhingFile $src, \PhingFile $dest) : void

Parameters

$src

\PhingFile

Source path and name file to copy.

$dest

\PhingFile

Destination path and name of new file.

Exceptions

\Exception if file cannot be copied.

Copy a file, or recursively copy a folder and its contents

copyr(string $source, string $dest) : bool
Inherited
author Aidan Lister
version 1.0.1
link http://aidanlister.com/repos/v/function.copyr.php
inherited_from \FileSystem::copyr()

Parameters

$source

string

Source path

$dest

string

Destination path

Returns

boolReturns TRUE on success, FALSE on failure

Create a new directory denoted by the given abstract pathname, returning true if and only if the operation succeeds.

createDirectory(\PhingFile $f, int $mode) : boolean
Inherited

NOTE: umask() is reset to 0 while executing mkdir(), and restored afterwards

inherited_from \FileSystem::createDirectory()

Parameters

$mode

int

Returns

boolean

Create a new empty file with the given pathname.

createNewFile(string $strPathname) : boolean
Inherited

Return true if the file was created and false if a file or directory with the given pathname already exists. Throw an IOException if an I/O error occurs.

inherited_from \FileSystem::createNewFile()

Parameters

$strPathname

string

Path of the file to be created.

Exceptions

\IOException

Returns

boolean

Delete the file or directory denoted by the given abstract pathname, returning true if and only if the operation succeeds.

delete(\PhingFile $f, boolean $recursive) : void
Inherited
inherited_from \FileSystem::delete()

Parameters

$recursive

boolean

Arrange for the file or directory denoted by the given abstract pathname to be deleted when Phing::shutdown is called, returning true if and only if the operation succeeds.

deleteOnExit(\PhingFile $f) 
Inherited
inherited_from \FileSystem::deleteOnExit()

Parameters

Exceptions

\IOException

Post-process the given URI path string if necessary.

fromURIPath($p) 

This is used on win32, e.g., to transform "/c:/foo" into "c:/foo". The path string still has slash separators; code in the PhingFile class will translate them after this method returns.

Parameters

$p

Return the simple boolean attributes for the file or directory denoted by the given abstract pathname, or zero if it does not exist or some other I/O error occurs.

getBooleanAttributes(\PhingFile $f) 

Parameters

Return the parent pathname string to be used when the parent-directory argument in one of the two-argument PhingFile constructors is the empty pathname.

getDefaultParent() 

Static method to return the FileSystem singelton representing this platform's local filesystem driver.

getFileSystem() : \FileSystem
InheritedStatic
inherited_from \FileSystem::getFileSystem()

Exceptions

\IOException

Returns

Return the time at which the file or directory denoted by the given abstract pathname was last modified, or zero if it does not exist or some other I/O error occurs.

getLastModifiedTime(\PhingFile $f) : int
Inherited
inherited_from \FileSystem::getLastModifiedTime()

Parameters

Exceptions

\IOException

Returns

int

Return the length in bytes of the file denoted by the given abstract pathname, or zero if it does not exist, is a directory, or some other I/O error occurs.

getLength(\PhingFile $f) : int
Inherited
inherited_from \FileSystem::getLength()

Parameters

Exceptions

\IOException

Returns

int

returns OS dependant directory separator char

getPathSeparator() 

returns OS dependant path separator char

getSeparator() 

Tell whether or not the given abstract pathname is absolute.

isAbsolute(\PhingFile $f) 

Parameters

List the elements of the directory denoted by the given abstract pathname.

listDir(\PhingFile $f) 
Inherited

Return an array of strings naming the elements of the directory if successful; otherwise, return

null

.

inherited_from \FileSystem::listDir()

Parameters

List the available filesystem roots, return array of PhingFile objects

listRoots() 

Exceptions

\IOException

returns the contents of a directory in an array

lister($f) 

Parameters

$f

Locks a file and throws an Exception if this is not possible.

lock(\PhingFile $f) : void
Inherited
inherited_from \FileSystem::lock()

Parameters

Exceptions

\Exception

A normal Unix pathname contains no duplicate slashes and does not end with a slash.

normalize($strPathname) 

It may be the empty string.

Check that the given pathname is normal. If not, invoke the real normalizer on the part of the pathname that requires normalization. This way we iterate through the whole pathname string only once.

NOTE: this method no longer expands the tilde (~) character!

Parameters

$strPathname

Compute the length of the pathname string's prefix.

prefixLength(string $pathname) 

The pathname string must be in normal form.

Parameters

$pathname

string

Rename the file or directory denoted by the first abstract pathname to the second abstract pathname, returning true if and only if the operation succeeds.

rename(\PhingFile $f1, \PhingFile $f2) : void
Inherited
inherited_from \FileSystem::rename()

Parameters

$f1

\PhingFile

abstract source file

$f2

\PhingFile

abstract destination file

Exceptions

\IOException if rename cannot be performed

Resolve the child pathname string against the parent.

resolve(string $parent, string $child) 

Both strings must be in normal form, and the result will be in normal form.

Parameters

$parent

string

$child

string

the file resolver

resolveFile(\PhingFile $f) 

Invoked by the getAbsolutePath and getCanonicalPath methods in the PhingFile class.

Parameters

Delete an empty directory OR a directory and all of its contents.

rmdir(\dir $dir, \children $children) : void
Inherited
inherited_from \FileSystem::rmdir()

Parameters

$dir

\dir

String. Path and/or name of directory to delete.

$children

\children

Boolean. False: don't delete directory contents. True: delete directory contents.

Set the last-modified time of the file or directory denoted by the given abstract pathname returning true if and only if the operation succeeds.

setLastModifiedTime(\PhingFile $f, int $time) : void
Inherited
inherited_from \FileSystem::setLastModifiedTime()

Parameters

$time

int

Exceptions

\IOException

set file readonly on unix

setReadOnly(\PhingFile $f) 

Parameters

Exceptions

\IOException

Set the modification and access time on a file to the present time.

touch(string $file, int $time) : void
Inherited
inherited_from \FileSystem::touch()

Parameters

$file

string

Path and/or name of file to touch.

$time

int

Set the umask for file and directory creation.

umask(\mode $mode) : void
Inherited
inherited_from \FileSystem::umask()

Parameters

$mode

\mode

Int. Permissions ususally in ocatal. Use leading 0 for octal. Number between 0 and 0777.

Exceptions

\Exception if there is an error performing operation.

Unlocks a file and throws an IO Error if this is not possible.

unlock(\PhingFile $f) : void
Inherited
inherited_from \FileSystem::unlock()

Parameters

Exceptions

\IOException

Normalize the given pathname, whose length is $len, starting at the given $offset; everything before this offset is already normal.

normalizer($pathname, $len, $offset) 

Parameters

$pathname

$len

$offset

 Properties

 

$fs : \FileSystem
Inherited
inherited_from \FileSystem::$$fs

 Constants

 

BA_DIRECTORY

BA_DIRECTORY : int
Inherited
inherited_from \FileSystem::BA_DIRECTORY
 

BA_EXISTS

BA_EXISTS : int
Inherited
inherited_from \FileSystem::BA_EXISTS
 

BA_HIDDEN

BA_HIDDEN : int
Inherited
inherited_from \FileSystem::BA_HIDDEN
 

BA_REGULAR

BA_REGULAR : int
Inherited
inherited_from \FileSystem::BA_REGULAR