//! Add a filesystem extension. //! \param ext The extension. //! \return True on success, false on failure. virtual bool addFileSystemExtension(IFileSystemExtension* ext); //! Add a filesystem extension (and then drop() it once). //! This allows the user to avoid dropping it himself. //! \param ext The extension. //! \return True on success, false on failure. virtual bool addAndDropFileSystemExtension(IFileSystemExtension* ext); //! Remove a filesystem extension. //! \param ext The extension. virtual void removeFileSystemExtension(IFileSystemExtension* ext); //! Remove a filesystem extension by its identifier. //! \param identifier The identifier (e.g. "zip"). virtual void removeFileSystemExtension(const c8* identifier); //! Remove all filesystem extensions. virtual void removeAllFileSystemExtensions(); //! Get a filesystem extension by its identifier. //! \param identifier The identifier (e.g. "zip"). virtual IFileSystemExtension* getFileSystemExtension(const c8* identifier); //! Add a virtual filesystem. //! \param filename A string of the form "[id:]filename.ext". The part in barckets is optional //! (and the brackets should not be typed). "id" (if provided) is the //! identifier of a previously added filesystem extension. //! Examples: "/some/real/path" or "zip:some_zip_archive.pak". //! \param ignoreCase: If set to true, files should be accessed without //! writing all letters in the right case (if supported by the extension). //! \param ignorePaths: If set to true, files should be accessed //! without their complete path (if supported by the extension). //! \return True if it was succesfully opened by one of the registered filesystem extensions, //! false if not. virtual bool addVirtualFileSystem(const c8* filename, bool ignoreCase = false, bool ignorePaths = false); //! Remove a virtual filesystem. //! \param filename A string of the form "[id:]filename.ext". The part in barckets is optional //! (and the brackets should not be typed). "id" (if provided) is the //! identifier of a previously added filesystem extension. //! Examples: "/some/real/path" or "zip:some_zip_archive.pak". //! \return True if it was succesfully removed by one of the registered filesystem extensions, //! false if not. virtual bool removeVirtualFileSystem(const c8* filename);