@name Main goals and usage hints
The main intentention of this interface is to provide an universal portable and high performance access to file system issues on any operating system.<p> There are a few main goals:<p> 1.The path specifications always have to be absolut. Any usage of relative path specifications is forbidden. Most operating systems provide a "Current Directory" per process. This is the reason why relative path specifications can cause problems in multithreading environments.<p> 2.Proprietary notations of file paths are not supported. Every path notation must follow the UNC notation. The directory divider is the slash character.<p> 3.The caller cannot get any information whether a file system is case sensitive, case preserving or not. The operating system implementation itself should determine if it can map case-insensitive paths. The case correct notation of a filename or file path is part of the "File Info". This case correct name can be used as a unique key if neccessary.<p> 4. Obtaining information about files or volumes is controlled by a bitmask which specifies which fields are of interest. Due to performance issues it is not recommended to obtain information which is not needed. But if the operating system provides more information anyway the implementation can set more fields on output as were requested. It is in the responsibility of the caller to decide if he uses this additional information or not. But he should do so to prevent further unnecessary calls if the information is already there.<br> The input bitmask supports a flag <code>osl_FileStatus_Mask_Validate</code> which can be used to force retrieving uncached validated information. Setting this flag when calling <code>osl_getFileStatus</code> in combination with no other flag is a synonym for a "FileExists". This should only be done when processing a single file (f.e. before opening) and NEVER during enumeration of directory contents on any step of information processing. This would change the runtime behaviour from O(n) to O(n*n/2) on nearly every file system.<br> On Windows NT reading the contents of an directory with 7000 entries and getting full information about every file only takes 0.6 seconds. Specifying the flag <code>osl_FileStatus_Mask_Validate</code> for each entry will increase the time to 180 seconds (!!!).
Top of Page
Copyright 2002 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303 USA.