<?xml version="1.0"?><phpdoc><class name="Bs_FileSystem" extends="Bs_Object" undoc="false" access="private" package="file"><file>C:/usr/local/lib/php/blueshoes-4.2/core/file/Bs_FileSystem.class.php</file><doc><author>andrej arn &amp;lt;andrej at blueshoes dot org&amp;gt;</author><author>sam blume &amp;lt;sam at blueshoes dot org&amp;gt;</author><inherited src="Array"/><description>Basic filesystem class. gets extended by Bs_File and Bs_Dir.Based on this object we have a dir and file object:FileSystem|+-----+-------+Dir          FileNOTE: The path format for input may be windows-like with &amp;apos;\&amp;apos; backslashes.(Even some PHP functions spit out that fomat on Winblows).BUT in all output we use iX path format with &amp;apos;/&amp;apos; forslash.Luckelly Winblows has no problem with this format.Main concept change !=====================This class will have no knowlege of a dir-possition given by paramters.It&amp;apos;s an attribute for the Dir- and File-class. In this way all routinescan be looked as static.                                                  --sam 7.6.2001not all methods. for example not getFileAttr() because of $this-&amp;gt;_lastFetchedPathwe&amp;apos;d need to work around that.  2001/10/04 --andrejIn reality, a dir is not much different from a file. Actually on unix a dir *is* a file.But because you usually  do different stuff with them (files -&amp;gt; read|write) and directoriescan &amp;apos;hold&amp;apos; subdirs and files, we separate them.So wath do Dir and File have in commen?iX (Unix) | Windows NTo Methods:move                X    |    Xdelete              X    |    Xrename              X    |    Xo Touch:create time         X    |    Xaccess time         X    |    X        // If it&amp;apos;s a dir == create timemodify time         X    |    X        // If it&amp;apos;s a dir == create timeo File Access:writeable           X    |    Xreadable            X    |    Xexecuteable         X    |    ? 1*)hidden, archive     -    |    X       // We will ignor this oneso File Rightsowner               X    |    ? 2*)group               X    |    ? 2*)all                 X    |    ? 2*)o Ownershipowner               X    |    ? 3*)group               X    |    ? 3*)o Linkinghard/soft link      X    |    - 4*)short cut           - 4*)|    X1*) How does windows react? TRUE if readable? dser2*) Windows hat directory sharing. Is that what we see? What about files?3*) How does windows react? Who&amp;apos;s the owner?4*) A &amp;apos;short cut&amp;apos; is normal files (like a batch file) and *NOT* a link!Ever looked at a &amp;apos;short cut&amp;apos; in the Windows-&amp;apos;Command Promt&amp;apos; (DOS-window)?It&amp;apos;s just a stupid normal file that ends with &amp;quot;.lnk&amp;quot;. Any file ending with &amp;quot;.lnk&amp;quot;is look as a &amp;apos;short cut&amp;apos; to Windows.Lets say we have a the &amp;apos;short cut&amp;apos; foo.lnk that &amp;apos;links&amp;apos; to a text file foo.txt.Now wath would you expect when you type:more foo.lnkIf it were a link you would expect the content of foo.txt. But *suprise* you&amp;apos;ll geta dump of the binary foo.lnk file. *brrrr*It&amp;apos;s realy stupid and cheap! I did it 10 years ago by writing a normal &amp;quot;.bat&amp;quot;-file (batch files)that switched to the right dir and called that program. The difference is that &amp;apos;short cut&amp;apos;-filesare binary and therefore not editable in a text editor.That&amp;apos;s way you only can have a &amp;apos;short cut&amp;apos; to files (no dirs).MEMO: Lots of problems with php&amp;apos;s filesystem functions when we&amp;apos;re on a winblows box :(1) many methods just don&amp;apos;t work - as the docu says2) many bugs listed at php.netno dependencies here.</description><shortdescription>FileSystem</shortdescription><version>4.0.$id$</version><copyright>blueshoes.org</copyright></doc><function name="Bs_FileSystem" undoc="false" access="public"><doc><return type="void"/><description/><shortdescription>Constructor.</shortdescription></doc></function><function name="getFileAttr" undoc="false" access="public"><doc><see type="function">clearstatcache()</see><parameter name="$path" default="&amp;apos;&amp;apos;" type="string"/><parameter name="$clearCache" default="FALSE" type="string">see note above</parameter><return type="void"/><throws>FALSE if file does not exist</throws><description>this function only gets called fromNOTE: Invoking the stat or lstat system call on most systems is quite expensive.Therefore, the result of the last call to many of the status functions inPHP are stored for use on the next such call using the same file/dir-name.If you wish to force a new status check, for instance if the file isbeing checked many times and may change or disappear, set the param &amp;apos;$clearCache&amp;apos;to TRUE to force a system reread.!!!This value is only cached for the lifetime of a single request.!!!</description><shortdescription>Return most of the file attribute info. (Should work with Windows too).</shortdescription></doc></function><function name="standardizePath" undoc="false" access="public"><doc><parameter name="$path" type="string"/><return name="" type="string">A stanadardized path with &amp;apos;/&amp;apos; instead of &amp;apos;\&amp;apos;</return><description>(Even some PHP functions spit out that fomat on Winblows).BUT in all output we use iX path format with &amp;apos;/&amp;apos; forslash.Luckelly Winblows has no problem with this format.</description><shortdescription>The path format for input may be windows-like with &amp;apos;\&amp;apos; backslashes.</shortdescription></doc></function><function name="getCwd" undoc="false" access="public"><doc><return name="" type="string">A path to the current working directory of the current process.</return><description>converting the result to our standard.</description><shortdescription>Gets the current process working directory by using PHP&amp;apos;s getcwd() and</shortdescription></doc></function><function name="getRealPath" undoc="false" access="public"><doc><see type="function" group="Bs_FileSystem">getRealPathSplit()</see><see type="function" group="Bs_FileSystem">realPath()</see><see type="function" group="Bs_FileSystem">realPathSplit()</see><parameter name="$path" default="&amp;apos;&amp;apos;" type="string">a path or a part of it</parameter><return name="" type="string">the real path</return><throws>bool FALSE if the path does not exist</throws><description>AND(!) checks for existence!This method basically executes our Bs_FileSystem::getRealPathSplit() function and checks for fileexistens.Make On windows, something like &amp;apos;c:/dir////dir2&amp;apos; is converted to &amp;apos;c:\dir\dir2&amp;apos;, but i want to haveit converted to &amp;apos;c:/dir/dir2/&amp;apos;. I like to have foreslashes on all systems. And in this case,dir2 was a directory even if the trailing slash was missing. realPath() should come with theintelligence to add it if dir2 is not a file, imo.</description><shortdescription>Returns canonicalized real pathname *with* ending &amp;apos;/&amp;apos; if it&amp;apos;s a dir</shortdescription></doc></function><function name="realpath" undoc="true" access="private"><doc><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><return type="void"/></doc></function><function name="getRealPathSplit" undoc="false" access="public" static="1"><doc><see type="function" group="Bs_FileSystem">getRealPath()</see><see type="function" group="Bs_FileSystem">realPath()</see><see type="function" group="Bs_FileSystem">realPathSplit()</see><parameter name="$path" default="&amp;apos;&amp;apos;" type="string">a path or a part of it</parameter><return type="void"/><throws>bool FALSE if the path does not exist</throws><description>AND(!) checks for existence!This method basically executes our Bs_FileSystem::getRealPathSplit() function and checks for fileexistens.returns a hash:  [&amp;apos;pathRoot&amp;apos;]  &amp;lt;- Things like &amp;apos;/&amp;apos;, &amp;apos;c:/&amp;apos;, &amp;apos;http://&amp;apos;,  &amp;apos;ftp://&amp;apos;[&amp;apos;pathCore&amp;apos;]  &amp;lt;- e.g. &amp;apos;path/to/a/subdir/&amp;apos;[&amp;apos;file&amp;apos;]      &amp;lt;- if a file was in the path find it here[&amp;apos;tailDir&amp;apos;]   &amp;lt;- for convinience the last dir of the [&amp;apos;pathCore&amp;apos;] e.g. &amp;apos;subdir&amp;apos;[&amp;apos;realPath&amp;apos;]  &amp;lt;- for convinience [&amp;apos;pathRoot&amp;apos;] . [&amp;apos;pathCore&amp;apos;] . [&amp;apos;file&amp;apos;];</description><shortdescription>Returns a splited canonicalized real pathname *with* ending &amp;apos;/&amp;apos; if it&amp;apos;s a dir.</shortdescription></doc></function><function name="realPathSplit" undoc="false" access="public" static="1"><doc><see type="function" group="Bs_FileSystem">getRealPath()</see><see type="function" group="Bs_FileSystem">getRealPathSplit()</see><see type="function" group="Bs_FileSystem">realPath()</see><parameter name="$path" type="string">a path or a part of it</parameter><return type="void"/><description>No existence check!NOTE 1: No file systems checks are made! So path may or *may not* exsist!See Bs_FileSystem::getRealPathSplit()returns a hash:  [&amp;apos;pathRoot&amp;apos;]  &amp;lt;- Things like &amp;apos;/&amp;apos;, &amp;apos;c:/&amp;apos;, &amp;apos;http://&amp;apos;,  &amp;apos;ftp://&amp;apos;[&amp;apos;pathCore&amp;apos;]  &amp;lt;- e.g. &amp;apos;path/to/a/subdir/&amp;apos;[&amp;apos;file&amp;apos;]      &amp;lt;- if a file was in the path find it here[&amp;apos;tailDir&amp;apos;]   &amp;lt;- for convinience the last dir of the [&amp;apos;pathCore&amp;apos;] e.g. &amp;apos;subdir&amp;apos;[&amp;apos;realPath&amp;apos;]  &amp;lt;- for convinience [&amp;apos;pathRoot&amp;apos;] . [&amp;apos;pathCore&amp;apos;] . [&amp;apos;file&amp;apos;];</description><shortdescription>Returns a splited canonicalized real pathname *with* ending &amp;apos;/&amp;apos; if it&amp;apos;s a dir.</shortdescription></doc></function><function name="setFullPath" undoc="false" access="public"><doc><parameter name="$workingDir" type="string">a path</parameter><return name="" type="bool">TRUE if it&amp;apos;s a new and valid dir, FALSE if it did not change.</return><description/><shortdescription>Set our view to the directory or file passed by &amp;apos;$workingDir&amp;apos;.</shortdescription></doc></function><function name="getFullPath" undoc="false" access="public"><doc><return name="" type="string"/><description/><shortdescription>returns the directory or file that this object (subclassed file or dir object) is looking at.</shortdescription></doc></function><function name="getPathStem" undoc="false" access="public"><doc><parameter name="$path" type="string">a path</parameter><return name="" type="string">the path (without filename)</return><throws>false</throws><description>Examples on Windows: (on *nix there is of course no drive prefix &amp;apos;f:&amp;apos;)&amp;quot;f:/dir 790/asdf/file.xyz.html&amp;quot;     =&amp;gt; &amp;quot;f:/dir 790/asdf/&amp;quot;&amp;quot;f:\\dir 790\\asdf\\file.xyz.html&amp;quot;  =&amp;gt; &amp;quot;f:/dir 790/asdf/&amp;quot;&amp;quot;f:\\dir 790\\asdf/&amp;quot;                =&amp;gt; &amp;quot;f:/dir 790/asdf/&amp;quot;&amp;quot;f:\\dir 790\\asdf&amp;quot;                 =&amp;gt; &amp;quot;f:/dir 790/&amp;quot;        &amp;lt;= even if asdf is a dir!! (see note II)NOTE  I: PHP&amp;apos;s dirname() doesn&amp;apos;t return the trailing slash, but we do.NOTE II: This method doesn&amp;apos;t try to check if the last part is a file or adir, when the trailing slash is not given. because the fullPathgiven doesn&amp;apos;t need to exist (on this system)...so even if in &amp;apos;c:/one/two&amp;apos; two is a directory, only &amp;apos;c:/one/&amp;apos; willbe returned.</description><shortdescription>Get the stem part of a path.</shortdescription></doc></function><function name="getFileName" undoc="false" access="public"><doc><parameter name="$path" type="string">filename and/or path</parameter><return name="" type="string">the filename if found else &amp;apos;&amp;apos;</return><description/><shortdescription>Get the file name from a path.</shortdescription></doc></function><function name="getFileExtension" undoc="false" access="public"><doc><parameter name="$fullPath" default="null" type="string">(a path to a dir or file on that machine)</parameter><return name="" type="string">the file extension</return><description>examples:&amp;apos;c:\myFile.php&amp;apos;           -&amp;gt; &amp;apos;php&amp;apos;&amp;apos;c:\myFile.class.php&amp;apos;     -&amp;gt; &amp;apos;php&amp;apos;&amp;apos;c:\myFile&amp;apos;               -&amp;gt; &amp;apos;&amp;apos;&amp;apos;c:\myFile.class.php.lnk&amp;apos; -&amp;gt; &amp;apos;php&amp;apos;  &amp;lt;= special case on winblows for linksmay be used without param, then it will be for the file/dir that iscurrently in use. otherwise it is used pseudostatic.</description><shortdescription>Get the file extension from a path.</shortdescription></doc></function><function name="basename" undoc="false" access="public"><doc><parameter name="$path" type="string"/><return name="" type="string"/><description>replacement to php&amp;apos;s basename() function which sucks.The path you give is first standardized replace &amp;apos;\&amp;apos; with &amp;apos;/&amp;apos;see http://www.php.net/manual/en/function.basename.php</description><shortdescription>returns the base name of a path (filename).</shortdescription></doc></function><function name="isValidFileName" undoc="false" access="private"><doc><parameter name="$fileName" undoc="true"/><parameter name="$system" type="string" undoc="true"/><return type="void"/><description>1) cannot have one of these characters: \ / : * ? &amp;quot; &amp;lt; &amp;gt; |2) cannot start or end with a space3) cannot start with a dot &amp;apos;.&amp;apos;if you want to test with a scary filename, use this one: {}d    % test.txt  {}  _-d°§+@ #ç&amp;()=~^`´&amp;apos;$£no file can be named &amp;apos;.&amp;apos; or &amp;apos;..&amp;apos; (which could cause bugs with these unix-like things).linux filename1) cannot have one of these characters: &amp;2) some more, don&amp;apos;t know.</description><shortdescription>windows filename and dirname (tested on winnt 4.0 german)</shortdescription></doc></function><function name="isValidPath" undoc="false" access="private"><doc><parameter name="$path" undoc="true"/><parameter name="$system" type="string" undoc="true"/><return type="void"/><description/><shortdescription/></doc></function><function name="isValidFullPath" undoc="false" access="private"><doc><parameter name="$fullPath" undoc="true"/><parameter name="$system" type="string" undoc="true"/><return type="void"/><description/><shortdescription/></doc></function><function name="isLink" undoc="false" access="public"><doc><parameter name="$fullPath" default="null" type="string">(a path to a dir or file on that machine)</parameter><return name="" type="bool"/><description>uses php&amp;apos;s is_link() on *nix and something handmade on winblows.may be used without param, then it will be for the file/dir that iscurrently in use. otherwise it is used pseudostatic.</description><shortdescription>tells wheter the current file/path (or $fullPath) is a link or not.</shortdescription></doc></function><function name="clearstatcache" undoc="true" access="private"><doc><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$clearCache" undoc="true"/><parameter name="$clearCache" undoc="true"/><parameter name="$clearCache" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" undoc="true"/><parameter name="$path" type="string" undoc="true"/><parameter name="$clearCache" type="string" undoc="true"/><return type="void"/></doc></function><function name="move" undoc="true" access="private"><doc><parameter name="$src" undoc="true"/><parameter name="$dest" undoc="true"/><return type="void"/></doc></function><variable name="$_lastFetchedPath" access="private" type="string">&amp;apos;&amp;apos;<doc><description>Hash with the attributes of the current file.</description><shortdescription>Used with $this-&amp;gt;getFileInfo() as cach info.</shortdescription></doc></variable><variable name="$_Bs_System" access="private" type="unknown"><doc></doc></variable><variable name="$_fullPath" access="private" type="string">&amp;apos;&amp;apos;<doc></doc></variable><variable name="$_lastFetchedFileAttr" access="private" type="array">array()<doc></doc></variable><constant name="BS_FILESYSTEM_VERSION" undoc="true" access="private" case="default: case sensitive">4.0.$x$<doc></doc></constant><inherited src="Bs_Object" type="functions"><element>isex</element><element>isexception</element><element>tostring</element><element>tohtml</element><element>persist</element><element>unpersist</element><element>bs_object</element><element>bbsetoutput</element><element>bbawake</element><element>bbisawake</element><element>bbxmsg</element><element>bbxfunctionstart</element><element>bbxfunctionend</element><element>bbxecho</element><element>bbxvar</element><element>bbxvardump</element><element>bbforcetrace</element><element>bbbufferstart</element><element>bbbufferget</element><element>bbbufferendflush</element><element>bbbufferendclean</element></inherited><inherited src="Bs_Object" type="consts"><element>bs_object_version</element></inherited><path><parent>Bs_Object</parent></path><baseclass>Bs_Object</baseclass><subclasses><subclass>Bs_Dir</subclass><subclass>Bs_File</subclass></subclasses></class></phpdoc>