www.pudn.com > GOS.rar > KFile.h


// KFile.h: interface for the KFile class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_KFILE_H__07A2FDF5_5892_4B0F_8975_33EF6C628FA9__INCLUDED_) 
#define AFX_KFILE_H__07A2FDF5_5892_4B0F_8975_33EF6C628FA9__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class KFile   
{ 
public: 
	enum OpenFlags{ 
		modeRead =          0x0000, 
		modeWrite =         0x0001, 
		modeReadWrite =     0x0002, 
		modeCreate =        0x1000 
		}; 
	enum SeekPosition {begin = 0x0, current = 0x1, end = 0x2 }; 
	static void Init(); 
	static void Unload(); 
private: 
	struct FILE 
	{ 
		KString strName; 
		DWORD nDate; 
		int nSize; 
		PUSHORT pBlock; 
	}; 
	static DWORD Verify(BOOL bWrite); 
	static KArraym_arrFile; 
	static PDWORD m_pUsedBitmap; 
	static int m_nBufferBlock; 
	static PBYTE m_pBuffer; 
private: 
	int GetFileIndex(LPCTSTR szFile); 
	int m_nFile; 
	int	m_nPostion; 
	void ReadWriteBuffer(PBYTE& pBuf,int& nCount); 
public: 
	//Îļþ²Ù×÷ 
	LPCTSTR FindNext(); 
	LPCTSTR FindFirst(); 
	BOOL Delete(); 
	BOOL MoveTo(LPCTSTR szNewName); 
	BOOL CopyTo(LPCTSTR szNewName,BOOL bOverWrite); 
	BOOL Open(LPCTSTR szFile,int nFlags); 
	void Close(); 
	 
	//¶Áд²Ù×÷ 
	int Seek(int nOffset,int nFrom); 
	void WriteString(LPCTSTR lpsz); 
	int ReadString(LPTSTR lpsz,int nMax); 
	int ReadString(KString& String); 
	int Read(PVOID pBuf,int nCount); 
	int Write(LPCVOID pBuf,int nCount); 
	int SetLength(int nSize); 
 
	KFile(); 
	virtual ~KFile(); 
public: 
	__inline LPCTSTR GetName(){return m_arrFile[m_nFile].strName;} 
	__inline int GetLength(){return m_arrFile[m_nFile].nSize;} 
	__inline void SeekToBegin(){m_nPostion=0;} 
	__inline void SeekToEnd(){m_nPostion=m_arrFile[m_nFile].nSize;} 
}; 
 
#endif // !defined(AFX_KFILE_H__07A2FDF5_5892_4B0F_8975_33EF6C628FA9__INCLUDED_)