⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dirfileinfo.h

📁 Resource editor base speadrum Chinese mobile
💻 H
字号:
// DirFileInfo.h: interface for the CDirFileInfo class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIRFILEINFO_H__713A1038_E2F0_40B5_A889_5AFB9464E0BA__INCLUDED_)
#define AFX_DIRFILEINFO_H__713A1038_E2F0_40B5_A889_5AFB9464E0BA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "TreeInfo.h"

const int MAX_ID_LEN      = 128;
const int MAX_NAME_LEN    = 128;
const int MAX_COMMENT_LEN = 512;

class CDirFileNode : public CTreeNode
{
public:
    CDirFileNode() {}
    virtual ~CDirFileNode() { }

    CDirFileNode & operator=( const CDirFileNode & dfNode )
    {
        if( this == &dfNode )
            return *this;

        _tcscpy(szID, dfNode.szID);
        _tcscpy(szName, dfNode.szName );
        _tcscpy(szComment, dfNode.szComment);

        bIsDir  = dfNode.bIsDir;
        nWidth  = dfNode.nWidth;
        nHeight = dfNode.nHeight;

        return *this;
    }
public:
    _TCHAR szID[ MAX_ID_LEN + 1 ];
	_TCHAR szName[MAX_NAME_LEN + 1];
    _TCHAR szComment[MAX_COMMENT_LEN + 1];

    BOOL bIsDir;
    int  nWidth;
    int  nHeight;
};

class CDirFileInfo : public CTreeInfo  
{
public:
	virtual PTREENODE MallocNode( void );
    virtual void      FreeNode( PTREENODE pNode );

	virtual int GetNodeSize(void) const;
    // 将节点信息置零。注意:由于节点有虚函数表,所以不能使用memset(...sizeof())来实现
    virtual void ZeroNode( PTREENODE pNode );

    BOOL IsDirNode( CDirFileNode * pNode ) const { return (pNode != NULL) && pNode->bIsDir; }

    void CalcAllLeafID( CStringArray & arrID );
    //////////////////////////////////////////////////////////////////////
	// 文件操作
	//////////////////////////////////////////////////////////////////////
	// 将指定节点的所有子孙节点保存到文件。注意:指定的节点本身并不被保存!
	BOOL SaveToFile( CDirFileNode * pNode, FILE * pFile );
	// 从文件中读取所有节点信息.
    // pRoot != NULL,读取的节点按链表顺序作为pRoot的子孙节点
	BOOL ReadFromFile( FILE * pFile, CDirFileNode * pRoot );
	//read unicode
	BOOL ReadFromFileEx( FILE * pFile, CDirFileNode * pRoot );
public:
	CDirFileInfo();
	virtual ~CDirFileInfo();

protected:
    BOOL RecursiveSave(CDirFileNode * pNode, FILE * pFile);
    BOOL RecursiveCalcAllLeafID( CDirFileNode * pNode, CStringArray & arrID );
private:

    CDirFileNode m_TempNode;
};

#endif // !defined(AFX_DIRFILEINFO_H__713A1038_E2F0_40B5_A889_5AFB9464E0BA__INCLUDED_)

⌨️ 快捷键说明

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