# Ogre::FileSystemArchive Class Reference
Resources

Specialisation of the Archive class to allow reading of files from filesystem folders / directories. More...

`#include <OgreFileSystem.h>`

Inheritance diagram for Ogre::FileSystemArchive:
[legend]

List of all members.

## Public Member Functions

| FileSystemArchive (const String &name, const String &archType)
| ~FileSystemArchive ()
bool | isCaseSensitive (void) const
void | load ()
void | unload ()
DataStreamPtr | open (const String &filename, bool readOnly=true) const
DataStreamPtr | create (const String &filename) const
void | remove (const String &filename) const
StringVectorPtr | list (bool recursive=true, bool dirs=false)
FileInfoListPtr | listFileInfo (bool recursive=true, bool dirs=false)
StringVectorPtr | find (const String &pattern, bool recursive=true, bool dirs=false)
FileInfoListPtr | findFileInfo (const String &pattern, bool recursive=true, bool dirs=false)
bool | exists (const String &filename)
time_t | getModifiedTime (const String &filename)
const String & | getName (void) const
| Get the name of this archive.
virtual bool | isReadOnly () const
| Reports whether this Archive is read-only, or whether the contents can be updated.
const String & | getType (void) const
| Return the type code of this Archive.
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)

## Static Public Member Functions

static void | setIgnoreHidden (bool ignore)
| Set whether filesystem enumeration will include hidden files or not.
static bool | getIgnoreHidden ()
| Get whether hidden files are ignored during filesystem enumeration.

## Static Public Attributes

static bool | ms_IgnoreHidden

## Protected Member Functions

void | findFiles (const String &pattern, bool recursive, bool dirs, StringVector *simpleList, FileInfoList *detailList)
| Utility method to retrieve all files in a directory matching pattern.

## Protected Attributes

String | mName
| Archive name.
String | mType
| Archive type code.
bool | mReadOnly
| Read-only flag.

## Detailed Description

Specialisation of the Archive class to allow reading of files from filesystem folders / directories.

Definition at line 48 of file OgreFileSystem.h.

## Constructor & Destructor Documentation

Ogre::FileSystemArchive::FileSystemArchive | ( | const String & | name,
|  | const String & | archType
| ) |  |

Ogre::FileSystemArchive::~FileSystemArchive | ( |  | ) |

## Member Function Documentation

DataStreamPtr Ogre::FileSystemArchive::create | ( | const String & | filename | ) | const`[virtual]`

Create a new file (or overwrite one already there).

Note:
  If the archive is read-only then this method will fail.

Parameters:

  filename | The fully qualified name of the file

Returns:
  A shared pointer to a DataStream which can be used to read / write the file.

Reimplemented from Ogre::Archive.

bool Ogre::FileSystemArchive::exists | ( | const String & | filename | ) | `[virtual]`

Find out if the named file exists (note: fully qualified filename required)

Implements Ogre::Archive.

StringVectorPtr Ogre::FileSystemArchive::find | ( | const String & | pattern,
|  | bool | recursive = `true`,
|  | bool | dirs = `false`
| ) |  | `[virtual]`

Find all file or directory names matching a given pattern in this archive.

Note:
  This method only returns filenames, you can also retrieve other information using findFileInfo.

Parameters:

  pattern | The pattern to search for; wildcards (*) are allowed
  recursive | Whether all paths of the archive are searched (if the archive has a concept of that)
  dirs | Set to true if you want the directories to be listed instead of files

Returns:
  A list of filenames matching the criteria, all are fully qualified

Implements Ogre::Archive.

FileInfoListPtr Ogre::FileSystemArchive::findFileInfo | ( | const String & | pattern,
|  | bool | recursive = `true`,
|  | bool | dirs = `false`
| ) |  | `[virtual]`

Find all files or directories matching a given pattern in this archive and get some detailed information about them.

Parameters:

  pattern | The pattern to search for; wildcards (*) are allowed
  recursive | Whether all paths of the archive are searched (if the archive has a concept of that)
  dirs | Set to true if you want the directories to be listed instead of files

Returns:
  A list of file information structures for all files matching the criteria.

Implements Ogre::Archive.

void Ogre::FileSystemArchive::findFiles | ( | const String & | pattern,
|  | bool | recursive,
|  | bool | dirs,
|  | StringVector * | simpleList,
|  | FileInfoList * | detailList
| ) |  | `[protected]`

Utility method to retrieve all files in a directory matching pattern.

Parameters:

  pattern | File pattern
  recursive | Whether to cascade down directories
  dirs | Set to true if you want the directories to be listed instead of files
  simpleList | Populated if retrieving a simple list
  detailList | Populated if retrieving a detailed list
  currentDir | The current directory relative to the base of the archive, for file naming

static bool Ogre::FileSystemArchive::getIgnoreHidden | ( |  | ) | `[static]`

Get whether hidden files are ignored during filesystem enumeration.

Definition at line 115 of file OgreFileSystem.h.

time_t Ogre::FileSystemArchive::getModifiedTime | ( | const String & | filename | ) | `[virtual]`

Retrieve the modification time of a given file.

Implements Ogre::Archive.

const String& Ogre::Archive::getName | ( | void |  | ) | const`[inherited]`

Get the name of this archive.

Definition at line 109 of file OgreArchive.h.

const String& Ogre::Archive::getType | ( | void |  | ) | const`[inherited]`

Return the type code of this Archive.

Definition at line 232 of file OgreArchive.h.

bool Ogre::FileSystemArchive::isCaseSensitive | ( | void |  | ) | const`[virtual]`

Returns whether this archive is case sensitive in the way it matches files.

Implements Ogre::Archive.

virtual bool Ogre::Archive::isReadOnly | ( |  | ) | const`[virtual, inherited]`

Reports whether this Archive is read-only, or whether the contents can be updated.

Definition at line 133 of file OgreArchive.h.

StringVectorPtr Ogre::FileSystemArchive::list | ( | bool | recursive = `true`,
|  | bool | dirs = `false`
| ) |  | `[virtual]`

List all file names in the archive.

Note:
  This method only returns filenames, you can also retrieve other information using listFileInfo.

Parameters:

  recursive | Whether all paths of the archive are searched (if the archive has a concept of that)
  dirs | Set to true if you want the directories to be listed instead of files

Returns:
  A list of filenames matching the criteria, all are fully qualified

Implements Ogre::Archive.

FileInfoListPtr Ogre::FileSystemArchive::listFileInfo | ( | bool | recursive = `true`,
|  | bool | dirs = `false`
| ) |  | `[virtual]`

List all files in the archive with accompanying information.

Parameters:

  recursive | Whether all paths of the archive are searched (if the archive has a concept of that)
  dirs | Set to true if you want the directories to be listed instead of files

Returns:
  A list of structures detailing quite a lot of information about all the files in the archive.

Implements Ogre::Archive.

void Ogre::FileSystemArchive::load | ( |  | ) | `[virtual]`

Loads the archive.

Remarks:
  This initializes all the internal data of the class.

Warning:
  Do not call this function directly, it is meant to be used only by the ArchiveManager class.

Implements Ogre::Archive.

DataStreamPtr Ogre::FileSystemArchive::open | ( | const String & | filename,
|  | bool | readOnly = `true`
| ) |  | const`[virtual]`

Open a stream on a given file.

Note:
  There is no equivalent 'close' method; the returned stream controls the lifecycle of this file operation.

Parameters:

  filename | The fully qualified name of the file
  readOnly | Whether to open the file in read-only mode or not (note, if the archive is read-only then this cannot be set to false)

Returns:
  A shared pointer to a DataStream which can be used to read / write the file. If the file is not present, returns a null shared pointer.

Implements Ogre::Archive.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) | `[inherited]`

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  | `[inherited]`

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  | `[inherited]`

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) | `[inherited]`

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  | `[inherited]`

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) | `[inherited]`

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  | `[inherited]`

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  | `[inherited]`

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  | `[inherited]`

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) | `[inherited]`

Definition at line 90 of file OgreMemoryAllocatedObject.h.

void Ogre::FileSystemArchive::remove | ( | const String & | filename | ) | const`[virtual]`

Reimplemented from Ogre::Archive.

static void Ogre::FileSystemArchive::setIgnoreHidden | ( | bool | ignore | ) | `[static]`

Set whether filesystem enumeration will include hidden files or not.

This should be called prior to declaring and/or initializing filesystem resource locations. The default is true (ignore hidden files).

Definition at line 109 of file OgreFileSystem.h.

void Ogre::FileSystemArchive::unload | ( |  | ) | `[virtual]`

Unloads the archive.

Warning:
  Do not call this function directly, it is meant to be used only by the ArchiveManager class.

Implements Ogre::Archive.

## Member Data Documentation

String Ogre::Archive::mName `[protected, inherited]`

Archive name.

Definition at line 91 of file OgreArchive.h.

bool Ogre::Archive::mReadOnly `[protected, inherited]`

Read-only flag.

Definition at line 95 of file OgreArchive.h.

bool Ogre::FileSystemArchive::ms_IgnoreHidden `[static]`

Definition at line 120 of file OgreFileSystem.h.

String Ogre::Archive::mType `[protected, inherited]`

Archive type code.

Definition at line 93 of file OgreArchive.h.

The documentation for this class was generated from the following file:

- OgreFileSystem.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun May 8 2011 20:28:11