system/io/Win32FileSystem.php
- Package
- phing.system.io
Package: phing\system\ioThis is an abstract class for platform specific filesystem implementations
you have to implement each method in the platform specific filesystem implementation
classes Your local filesytem implementation must extend this class.
You should also use this class as a template to write your local implementation
Some native PHP filesystem specific methods are abstracted here as well. Anyway
you must always use this methods via a PhingFile object (that by nature uses the
*FileSystem drivers to access the real filesystem via this class using natives.
FIXME:
- Error handling reduced to min fallthrough runtime exceptions
more precise errorhandling is done by the PhingFile class
- Parent(s)
- \FileSystem
- Children
- \WinNTFileSystem
- Author
-
Charlie Killian
- Author
-
Hans Lellelid
- Version
- $Id$
Constants
Properties
Methods



checkAccess(
\PhingFile $f, boolean $write
=
false
)
:
void
inheritedCheck whether the file or directory denoted by the given abstract
pathname may be accessed by this process. 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
| Name |
Type |
Description |
| $f |
\PhingFile |
|
| $write |
boolean |
|



chgrp(
string $pathname, string $group
)
:
void
Parameters
| Name |
Type |
Description |
| $pathname |
string |
Path and name of file or directory. |
| $group |
string |
The group of the file or directory. See http://us.php.net/chgrp
|
Throws



chmod(
string $pathname, int $mode
)
:
void
Parameters
| Name |
Type |
Description |
| $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.
|
Throws



chown(
string $pathname, string $user
)
:
void
Parameters
| Name |
Type |
Description |
| $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
|
Throws
| Exception |
Description |
| \Exception |
if operation failed. |



compareMTimes(
\file1 $file1, \file2 $file2
)
:
\Int.
Parameters
| Name |
Type |
Description |
| $file1 |
\file1 |
String. Path and name of file1. |
| $file2 |
\file2 |
String. Path and name of file2. |
Returns
| Type |
Description |
| \Int. |
1 if file1 is newer. -1 if file2 is newer. 0 if files have the same time. Err object on failure. |
Throws
| Exception |
Description |
| \Exception |
- if cannot get modified time of either file. |



createDirectory(
\PhingFile $f, int $mode
=
0755
)
:
boolean
inheritedCreate a new directory denoted by the given abstract pathname,
returning true if and only if the operation succeeds.
Inherited from:
\FileSystem::createDirectory()
NOTE: umask() is reset to 0 while executing mkdir(), and restored afterwards
Parameters
Returns



createNewFile(
string $strPathname
)
:
boolean
inheritedCreate a new empty file with the given pathname. 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
| Name |
Type |
Description |
| $strPathname |
string |
Path of the file to be created. |
Returns
Throws



delete(
\PhingFile $f, boolean $recursive
=
false
)
:
void
inheritedDelete the file or directory denoted by the given abstract pathname,
returning true if and only if the operation succeeds.
Inherited from:
\FileSystem::delete()
Parameters
| Name |
Type |
Description |
| $f |
\PhingFile |
|
| $recursive |
boolean |
|



fromURIPath(
$strPath
)
:
voidPost-process the given URI path string if necessary. 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
| Name |
Type |
Description |
| $strPath |
|
|



getLastModifiedTime(
\PhingFile $f
)
:
int
inheritedReturn 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.
Inherited from:
\FileSystem::getLastModifiedTime()
Parameters
Returns
Throws



getLength(
\PhingFile $f
)
:
int
inheritedReturn 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.
Inherited from:
\FileSystem::getLength()
Parameters
Returns
Throws



normalize(
string $strPath
)
:
stringCheck 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.
Parameters
| Name |
Type |
Description |
| $strPath |
string |
|
Returns



normalizePrefix(
$strPath, $len, $sb
)
:
voidA normal Win32 pathname contains no duplicate slashes, except possibly
for a UNC prefix, and does not end with a slash. It may be the empty
string. Normalized Win32 pathnames have the convenient property that
the length of the prefix almost uniquely identifies the type of the path
and whether it is absolute or relative:
0 relative to both drive and directory
1 drive-relative (begins with '\')
2 absolute UNC (if first char is '\'), else directory-relative (has form "z:foo")
3 absolute local pathname (begins with "z:\")
Parameters
| Name |
Type |
Description |
| $strPath |
|
|
| $len |
|
|
| $sb |
|
|



normalizer(
$strPath, $len, $offset
)
:
voidNormalize the given pathname, whose length is len, starting at the given
offset; everything before this offset is already normal.
Parameters
| Name |
Type |
Description |
| $strPath |
|
|
| $len |
|
|
| $offset |
|
|



prefixLength(
$strPath
)
:
voidCompute the length of this pathname string's prefix. The pathname
string must be in normal form.
Parameters
| Name |
Type |
Description |
| $strPath |
|
|



rename(
\PhingFile $f1, \PhingFile $f2
)
:
void
inheritedRename the file or directory denoted by the first abstract pathname to
the second abstract pathname, returning true if and only if
the operation succeeds.
Inherited from:
\FileSystem::rename()
Parameters
Throws
| Exception |
Description |
| \IOException |
if rename cannot be performed |



resolve(
string $parent, string $child
)
:
voidResolve the child pathname string against the parent.
Both strings must be in normal form, and the result
will be a string in normal form.
Parameters
| Name |
Type |
Description |
| $parent |
string |
|
| $child |
string |
|



rmdir(
\dir $dir, \children $children
=
false
)
:
void
inheritedDelete an empty directory OR a directory and all of its contents.
Inherited from:
\FileSystem::rmdir()
Parameters
| Name |
Type |
Description |
| $dir |
\dir |
String. Path and/or name of directory to delete.
|
| $children |
\children |
Boolean. False: don't delete directory contents. True: delete directory contents.
|



symlink(
string $target, string $link
)
:
void
Currently symlink is not implemented on Windows. Don't use if the application is to be portable.
Parameters
| Name |
Type |
Description |
| $target |
string |
Path and/or name of file to link.
|
| $link |
string |
Path and/or name of link to be created.
|



touch(
string $file, int $time
=
null
)
:
void
inheritedSet the modification and access time on a file to the present time.
Inherited from:
\FileSystem::touch()
Parameters
| Name |
Type |
Description |
| $file |
string |
Path and/or name of file to touch.
|
| $time |
int |
|



umask(
\mode $mode
)
:
void
Parameters
| Name |
Type |
Description |
| $mode |
\mode |
Int. Permissions ususally in ocatal. Use leading 0 for octal. Number between 0 and 0777. |
Throws
| Exception |
Description |
| \Exception |
if there is an error performing operation. |



unlink(
string $file
)
:
void
Parameters
| Name |
Type |
Description |
| $file |
string |
Path and/or name of file to delete.
|
Throws
| Exception |
Description |
| \IOException |
- if an error is encountered. |