kfile.h

来自「一个简单而又高效的嵌入式操作系统.包括GUI及文件系统.仿Windows设计,类」· C头文件 代码 · 共 71 行

H
71
字号
// 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 KArray<FILE>m_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_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?