Classe cfichier

Description

Une classe pour faciliter le maniement des fichier (création, lecture, écriture, recherche, ...) en mode binaire ou caractère.

Source / Exemple :


#pragma once

#include "Chaine.h"

//Classe CFichier
class CFichier
{
public:
	//type d'opération
	typedef enum Type
	{
		Binaire = 0,
		Caractere
	}Type;

	//type d'ouverture de fichier
	enum Mode
	{
		Lecture = GENERIC_READ,
		Ecriture = GENERIC_WRITE,
		LectureEcriture = FILE_ALL_ACCESS
	}Mode;

	//type de déplacement fichier
	enum Position
	{
		Debut = FILE_BEGIN,
		Fin = FILE_END
	}Position;

	//type d'attributs de fichier
	enum Attribut
	{
		Archive = FILE_ATTRIBUTE_ARCHIVE,
		Cache = FILE_ATTRIBUTE_HIDDEN,
		Normal = FILE_ATTRIBUTE_NORMAL,
		LectureSeule = FILE_ATTRIBUTE_READONLY,
		Systeme = FILE_ATTRIBUTE_SYSTEM,
		Temporaire = FILE_ATTRIBUTE_TEMPORARY
	}Attribut;

private:
	HANDLE m_hFichier;
	FILE* m_pFichier;
	HANDLE m_hRecherche;
	CChaine m_strNomFichier;
	WIN32_FIND_DATA m_DataFichier;
	Type m_Type;

public:
	//constructeur et destructeur
	CFichier(void);
	~CFichier(void);

	//ouverture et fermeture
	BOOL Creer(const CChaine& strNomFichier);
	BOOL Ouvrir(const CChaine& strNomFichier,int Mode);
	BOOL Fermer(void);
	BOOL IsOuvert(void) const;
	void SetType(CFichier::Type tType);
	CFichier::Type GetType(void) const;

	//lecture et écriture
	CChaine LireStr(int iTaille = 0);
	void* Lire(size_t Taille);
	int EcrireStr(const CChaine& strChaine);
	int Ecrire(const void* pData, size_t Taille);

	//déplacement dans le fichier
	BOOL SeDeplacer(DWORD dwNbCaract) const;
	BOOL SeDeplacer(int Position) const;

	//routines sur les fichiers
	DWORD GetTaille(void) const;
	BOOL SetAttributs(int Attributs) const;
	friend BOOL Copier(const CChaine& strFichier, const CChaine& strNvFichier);
	friend BOOL Deplacer(const CChaine& strFichier, const CChaine& strNvFichier);
	friend BOOL Supprimer(const CChaine& strFichier);

	//recherche de fichier
	CChaine DebutRecherche(const CChaine& strFichier);
	CChaine RechercheSuivant(void);
	void FinRecherche(void);

	//opérations sur les chaines
	friend CChaine ExtraitNom(const CChaine& strFichier);
	friend CChaine ExtraitChemin(const CChaine& strFichier);
	friend CChaine ExtraitExt(const CChaine& strFichier);
};

Conclusion :


Il doit sûrement rester quelques bugs, merci de me les signaler.
Cette classe utilise la classe CChaine que vous trouverez sur le site.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.