Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor::File

#include <File.hpp>

Graphe d'héritage de castor::File:
Inheritance graph
[légende]
Graphe de collaboration de castor::File:
Collaboration graph
[légende]

Types publics

enum class  CreateMode : uint32_t {
  eUserRead = 0x00000001 , eUserWrite = 0x00000002 , eUserExec = 0x00000004 , eGroupRead = 0x00000010 ,
  eGroupWrite = 0x00000020 , eGroupExec = 0x00000040 , eOthersRead = 0x00000100 , eOthersWrite = 0x00000200 ,
  eOthersExec = 0x00000400 , eUserRWX = eUserRead | eUserWrite | eUserExec , eGroupRWX = eGroupRead | eGroupWrite | eGroupExec , eOthersRWX = eOthersRead | eOthersWrite | eOthersExec ,
  eAllRWX = eUserRWX | eGroupRWX | eOthersRWX
}
 Enumérateur des modes d'ouverture. Plus de détails...
 
enum class  OpenMode : uint32_t {
  eDummy = 0x00000000 , eRead = 0x00000001 , eWrite = 0x00000002 , eAppend = 0x00000004 ,
  eBinary = 0x00000008
}
 Enumérateur des modes d'ouverture. Plus de détails...
 
enum class  OffsetMode : uint8_t {
  eBeginning = 0 , eCurrent = 1 , eEnd = 2 , eCount ,
  eMin = eBeginning
}
 Modes d'offset pour la fonction seek. Plus de détails...
 
enum class  EncodingMode : uint8_t {
  eAuto = 0 , eASCII = 1 , eUTF8 = 2 , eUTF16 = 3 ,
  eCount , eMin = eAuto
}
 Mode d'encodage des fichiers texte. Plus de détails...
 
using TraverseDirFunction = castor::Function< bool( Path const & path ) >
 
using HitFileFunction = castor::Function< void( Path const & folder, String const & name ) >
 
using FilterFunction = castor::Function< bool( Path const & folder, String const & name ) >
 

Fonctions membres publiques

virtual CU_API ~File () noexcept
 Destructeur, ferme le fichier.
 
CU_API int seek (long long offset, OffsetMode origin=OffsetMode::eBeginning)
 Fonction de déplacement dans le fichier, selon l'offset et le mode donnés.
 
CU_API long long getLength ()
 Récupère la taille du fichier.
 
CU_API bool isOk () const
 Dit si le curseur du fichier est OK.
 
CU_API long long tell ()
 Récupère la position du curseur du fichier.
 
Path const & getFileFullPath () const
 Récupère le chemin, nom et extension du fichier.
 
Path getFilePath () const
 Récupère le chemin du fichier.
 
Path getFileName () const
 Récupère le nom et l'extension du fichier.
 

Fonctions membres publiques statiques

static CU_API bool traverseDirectory (Path const &folderPath, TraverseDirFunction const &directoryFunction, HitFileFunction const &fileFunction)
 Traverses the files and directories of a directory.
 
static CU_API PathArray filterDirectoryFiles (Path const &folderPath, FilterFunction const &onFile, bool recursive=false)
 Filters the files in a directory, recursively or not.
 
static CU_API bool listDirectoryFiles (Path const &folderPath, PathArray &files, bool recursive=false)
 Liste tous les fichiers d'un répertoire, récursivement ou pas.
 
static CU_API Path getExecutableDirectory ()
 donne le répertoire d'exécution
 
static CU_API Path getUserDirectory ()
 donne le répertoire de l'utilisateur courant
 
static CU_API bool directoryExists (Path const &folderPath)
 Teste l'existence d'un dossier.
 
static CU_API bool directoryCreate (Path const &folderPath, FlagCombination< CreateMode > const &flags=CreateMode::eAllRWX)
 Crée un dossier.
 
static CU_API bool directoryDelete (Path const &folderPath)
 Supprime un dossier vide.
 
static CU_API bool fileExists (Path const &filePath)
 Teste l'existence d'un fichier.
 
static CU_API bool deleteFile (Path const &filePath)
 Supprime un fichier.
 
static CU_API bool copyFile (Path const &filePath, Path const &folderPath, bool allowReplace=false)
 Copie un fichier dans un dossier.
 
static CU_API bool copyFileName (Path const &srcFileName, Path const &dstFileName, bool allowReplace=false)
 Copie un fichier.
 
static CU_API String normaliseFileName (String const &name)
 Remplace les caractères non valides pour un nim de fichier par des '_'.
 

Fonctions membres protégées

CU_API File (Path const &filePath, FlagCombination< OpenMode > const &mode, EncodingMode encoding=EncodingMode::eASCII)
 Ouvre le fichier situé au chemin donné, avec le mode et l'encodage donnés.
 
 CU_DeclareInvariantBlock ()
 
CU_API uint64_t doWrite (uint8_t const *buffer, uint64_t size)
 
CU_API uint64_t doRead (uint8_t *buffer, uint64_t size)
 
- Fonctions membres protégées hérités de castor::NonMovable
 NonMovable ()=default
 Constructeur.
 
 ~NonMovable () noexcept=default
 Destructeur.
 

Attributs protégés

FlagCombination< OpenModem_mode { 0u }
 
EncodingMode m_encoding { EncodingMode::eASCII }
 
Path m_fileFullPath
 
FILE * m_file { nullptr }
 
uint64_t m_cursor { 0 }
 
uint64_t m_length { 0 }
 

Documentation des définitions de type membres

◆ FilterFunction

using castor::File::FilterFunction = castor::Function< bool( Path const & folder, String const & name ) >

◆ HitFileFunction

using castor::File::HitFileFunction = castor::Function< void( Path const & folder, String const & name ) >

◆ TraverseDirFunction

using castor::File::TraverseDirFunction = castor::Function< bool( Path const & path ) >

Documentation des énumérations membres

◆ CreateMode

enum class castor::File::CreateMode : uint32_t
strong

Enumérateur des modes d'ouverture.

Valeurs énumérées
eUserRead 

Le propriétaire peut lire.

eUserWrite 

Le propriétaire peut écrire.

eUserExec 

Le propriétaire peut exécuter.

eGroupRead 

Le groupe du propriétaire peut lire.

eGroupWrite 

Le groupe du propriétaire peut écrire.

eGroupExec 

Le groupe du propriétaire peut exécuter.

eOthersRead 

Les autres peuvent lire.

eOthersWrite 

Les autres peuvent écrire.

eOthersExec 

Les autres peuvent exécuter.

eUserRWX 

Droits en lecture, écriture et exécution pour le propriétaire.

eGroupRWX 

Droits en lecture, écriture et exécution pour le groupe du propriétaire.

eOthersRWX 

Droits en lecture, écriture et exécution pour les autres.

eAllRWX 

Droits en lecture, écriture et exécution pour tous les utilisateurs.

◆ EncodingMode

enum class castor::File::EncodingMode : uint8_t
strong

Mode d'encodage des fichiers texte.

Valeurs énumérées
eAuto 

Encodage de texte en sélection automatique.

eASCII 

Encodage de texte en ASCII.

eUTF8 

Encodage de texte en UTF8.

eUTF16 

Encodage de texte en UTF16.

eCount 
eMin 

◆ OffsetMode

enum class castor::File::OffsetMode : uint8_t
strong

Modes d'offset pour la fonction seek.

Valeurs énumérées
eBeginning 

L'offset est défini par rapport au début du fichier.

eCurrent 

L'offset est défini par rapport à la position actuelle.

eEnd 

L'offset est défini par rapport à la fin du fichier.

eCount 
eMin 

◆ OpenMode

enum class castor::File::OpenMode : uint32_t
strong

Enumérateur des modes d'ouverture.

Valeurs énumérées
eDummy 

Mode d'ouverture 'dummy', à ne pas utiliser.

eRead 

Mode d'ouverture en lecture.

eWrite 

Mode d'ouverture en création / écriture.

eAppend 

Mode d'ouverture en écriture en fin de fichier.

eBinary 

Mode d'ouverture en binaire.

Documentation des constructeurs et destructeur

◆ File()

CU_API castor::File::File ( Path const & filePath,
FlagCombination< OpenMode > const & mode,
EncodingMode encoding = EncodingMode::eASCII )
protected

Ouvre le fichier situé au chemin donné, avec le mode et l'encodage donnés.

Paramètres
[in]filePathLe chemin du fichier
[in]modeLe mode d'ouverture, combinaison d'un ou plusieurs OpenMode
[in]encodingLe mode d'encodage du fichier

◆ ~File()

virtual CU_API castor::File::~File ( )
virtualnoexcept

Destructeur, ferme le fichier.

Documentation des fonctions membres

◆ copyFile()

static CU_API bool castor::File::copyFile ( Path const & filePath,
Path const & folderPath,
bool allowReplace = false )
static

Copie un fichier dans un dossier.

Paramètres
[in]filePathLe chemin du fichier.
[in]folderPathLe dossier de destination.
[in]allowReplacetrue pour autroiser le remplacement de fichiers existants.
Renvoie
true si le fichier a été copié correctement.

◆ copyFileName()

static CU_API bool castor::File::copyFileName ( Path const & srcFileName,
Path const & dstFileName,
bool allowReplace = false )
static

Copie un fichier.

Renvoie
true si le fichier a été copié correctement

◆ CU_DeclareInvariantBlock()

castor::File::CU_DeclareInvariantBlock ( )
protected

◆ deleteFile()

static CU_API bool castor::File::deleteFile ( Path const & filePath)
static

Supprime un fichier.

Paramètres
[in]filePathLe chemin du fichier
Renvoie
true si le fichier a été supprimé correctement

◆ directoryCreate()

static CU_API bool castor::File::directoryCreate ( Path const & folderPath,
FlagCombination< CreateMode > const & flags = CreateMode::eAllRWX )
static

Crée un dossier.

Paramètres
[in]folderPathLe chemin du dossier
[in]flagsLes droits d'utilisation
Renvoie
true si le dossier a été créé

◆ directoryDelete()

static CU_API bool castor::File::directoryDelete ( Path const & folderPath)
static

Supprime un dossier vide.

Paramètres
[in]folderPathLe chemin du dossier
Renvoie
true si le dossier a été supprimé

◆ directoryExists()

static CU_API bool castor::File::directoryExists ( Path const & folderPath)
static

Teste l'existence d'un dossier.

Paramètres
[in]folderPathLe chemin du dossier
Renvoie
true si le dossier existe

◆ doRead()

CU_API uint64_t castor::File::doRead ( uint8_t * buffer,
uint64_t size )
protected

◆ doWrite()

CU_API uint64_t castor::File::doWrite ( uint8_t const * buffer,
uint64_t size )
protected

◆ fileExists()

static CU_API bool castor::File::fileExists ( Path const & filePath)
static

Teste l'existence d'un fichier.

Paramètres
[in]filePathLe chemin du fichier
Renvoie
true si le fichier existe

◆ filterDirectoryFiles()

static CU_API PathArray castor::File::filterDirectoryFiles ( Path const & folderPath,
FilterFunction const & onFile,
bool recursive = false )
static

Filters the files in a directory, recursively or not.

Paramètres
[in]folderPathThe directory path.
[in]onFileThe filter function, returns true to add to the list, false to ignore.
[in]recursiveTells if search must be recursive.
Renvoie
The files list.

◆ getExecutableDirectory()

static CU_API Path castor::File::getExecutableDirectory ( )
static

donne le répertoire d'exécution

Renvoie
Le répertoire

◆ getFileFullPath()

Path const & castor::File::getFileFullPath ( ) const
inline

Récupère le chemin, nom et extension du fichier.

Renvoie
La valeur

Références m_fileFullPath.

◆ getFileName()

Path castor::File::getFileName ( ) const
inline

Récupère le nom et l'extension du fichier.

Renvoie
La valeur

Références castor::Path::getFullFileName(), et m_fileFullPath.

Voici le graphe d'appel pour cette fonction :

◆ getFilePath()

Path castor::File::getFilePath ( ) const
inline

Récupère le chemin du fichier.

Renvoie
La valeur

Références castor::Path::getPath(), et m_fileFullPath.

Voici le graphe d'appel pour cette fonction :

◆ getLength()

CU_API long long castor::File::getLength ( )

Récupère la taille du fichier.

Renvoie
La valeur

◆ getUserDirectory()

static CU_API Path castor::File::getUserDirectory ( )
static

donne le répertoire de l'utilisateur courant

Renvoie
Le répertoire

◆ isOk()

CU_API bool castor::File::isOk ( ) const

Dit si le curseur du fichier est OK.

Renvoie
true si le curseur du fichier n'est pas en erreur ni EOF

◆ listDirectoryFiles()

static CU_API bool castor::File::listDirectoryFiles ( Path const & folderPath,
PathArray & files,
bool recursive = false )
static

Liste tous les fichiers d'un répertoire, récursivement ou pas.

Paramètres
[in]folderPathLe chemin du dossier
[out]filesReçoit la liste des fichiers
[in]recursiveDéfinit si la recherche doit être récursive ou pas
Renvoie
true si le dossier a été listé

◆ normaliseFileName()

static CU_API String castor::File::normaliseFileName ( String const & name)
static

Remplace les caractères non valides pour un nim de fichier par des '_'.

◆ seek()

CU_API int castor::File::seek ( long long offset,
OffsetMode origin = OffsetMode::eBeginning )

Fonction de déplacement dans le fichier, selon l'offset et le mode donnés.

Paramètres
[in]offsetL'offset
[in]originLe mode
Renvoie
0 si réussi

◆ tell()

CU_API long long castor::File::tell ( )

Récupère la position du curseur du fichier.

Renvoie
La valeur

◆ traverseDirectory()

static CU_API bool castor::File::traverseDirectory ( Path const & folderPath,
TraverseDirFunction const & directoryFunction,
HitFileFunction const & fileFunction )
static

Traverses the files and directories of a directory.

Paramètres
[in]folderPathThe directory path.
[in]directoryFunctionreturns true to traverse it, false to ignore.
[in]fileFunctionPlaceholder to handle a file name.
Renvoie
false if any error occured.

Documentation des données membres

◆ m_cursor

uint64_t castor::File::m_cursor { 0 }
protected

La position actuelle du curseur dans le fichier.

◆ m_encoding

EncodingMode castor::File::m_encoding { EncodingMode::eASCII }
protected

Le mode d'encodage.

◆ m_file

FILE* castor::File::m_file { nullptr }
protected

Le fichier.

◆ m_fileFullPath

Path castor::File::m_fileFullPath
protected

Le chemin d'accès au fichier.

Référencé par getFileFullPath(), getFileName(), et getFilePath().

◆ m_length

uint64_t castor::File::m_length { 0 }
protected

La taille totale du fichier.

◆ m_mode

FlagCombination< OpenMode > castor::File::m_mode { 0u }
protected

Le mode d'ouverture.


La documentation de cette classe a été générée à partir du fichier suivant :