diff options
| author | Mirrorbot <mirrorbot@cogarr.net> | 2025-12-27 17:53:06 -0600 |
|---|---|---|
| committer | Mirrorbot <mirrorbot@cogarr.net> | 2025-12-27 17:53:06 -0600 |
| commit | 71e94ee161447b84c0eaabf6567f8fa62262cd3e (patch) | |
| tree | 391064cc6173a6fe75069af2fdc1978af12f623e /include/IFileList.h | |
| download | irrlicht-master.tar.gz irrlicht-master.tar.bz2 irrlicht-master.zip | |
Diffstat (limited to 'include/IFileList.h')
| -rw-r--r-- | include/IFileList.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/include/IFileList.h b/include/IFileList.h new file mode 100644 index 0000000..4c2f8ea --- /dev/null +++ b/include/IFileList.h @@ -0,0 +1,94 @@ +// Copyright (C) 2002-2012 Nikolaus Gebhardt
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in irrlicht.h
+
+#ifndef __I_FILE_LIST_H_INCLUDED__
+#define __I_FILE_LIST_H_INCLUDED__
+
+#include "IReferenceCounted.h"
+#include "path.h"
+
+namespace irr
+{
+namespace io
+{
+
+//! Provides a list of files and folders.
+/** File lists usually contain a list of all files in a given folder,
+but can also contain a complete directory structure. */
+class IFileList : public virtual IReferenceCounted
+{
+public:
+ //! Get the number of files in the filelist.
+ /** \return Amount of files and directories in the file list. */
+ virtual u32 getFileCount() const = 0;
+
+ //! Gets the name of a file in the list, based on an index.
+ /** The path is not included in this name. Use getFullFileName for this.
+ \param index is the zero based index of the file which name should
+ be returned. The index must be less than the amount getFileCount() returns.
+ \return File name of the file. Returns 0, if an error occured. */
+ virtual const io::path& getFileName(u32 index) const = 0;
+
+ //! Gets the full name of a file in the list including the path, based on an index.
+ /** \param index is the zero based index of the file which name should
+ be returned. The index must be less than the amount getFileCount() returns.
+ \return File name of the file. Returns 0 if an error occured. */
+ virtual const io::path& getFullFileName(u32 index) const = 0;
+
+ //! Returns the size of a file in the file list, based on an index.
+ /** \param index is the zero based index of the file which should be returned.
+ The index must be less than the amount getFileCount() returns.
+ \return The size of the file in bytes. */
+ virtual u32 getFileSize(u32 index) const = 0;
+
+ //! Returns the file offset of a file in the file list, based on an index.
+ /** \param index is the zero based index of the file which should be returned.
+ The index must be less than the amount getFileCount() returns.
+ \return The offset of the file in bytes. */
+ virtual u32 getFileOffset(u32 index) const = 0;
+
+ //! Returns the ID of a file in the file list, based on an index.
+ /** This optional ID can be used to link the file list entry to information held
+ elsewhere. For example this could be an index in an IFileArchive, linking the entry
+ to its data offset, uncompressed size and CRC.
+ \param index is the zero based index of the file which should be returned.
+ The index must be less than the amount getFileCount() returns.
+ \return The ID of the file. */
+ virtual u32 getID(u32 index) const = 0;
+
+ //! Check if the file is a directory
+ /** \param index The zero based index which will be checked. The index
+ must be less than the amount getFileCount() returns.
+ \return True if the file is a directory, else false. */
+ virtual bool isDirectory(u32 index) const = 0;
+
+ //! Searches for a file or folder in the list
+ /** Searches for a file by name
+ \param filename The name of the file to search for.
+ \param isFolder True if you are searching for a directory path, false if you are searching for a file
+ \return Returns the index of the file in the file list, or -1 if
+ no matching name name was found. */
+ virtual s32 findFile(const io::path& filename, bool isFolder=false) const = 0;
+
+ //! Returns the base path of the file list
+ virtual const io::path& getPath() const = 0;
+
+ //! Add as a file or folder to the list
+ /** \param fullPath The file name including path, from the root of the file list.
+ \param isDirectory True if this is a directory rather than a file.
+ \param offset The file offset inside an archive
+ \param size The size of the file in bytes.
+ \param id The ID of the file in the archive which owns it */
+ virtual u32 addItem(const io::path& fullPath, u32 offset, u32 size, bool isDirectory, u32 id=0) = 0;
+
+ //! Sorts the file list. You should call this after adding any items to the file list
+ virtual void sort() = 0;
+};
+
+} // end namespace irr
+} // end namespace io
+
+
+#endif
+
|
