游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2312|回复: 2

一个免费的文件系统,功能多多,使用简单……

[复制链接]

7

主题

10

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-5-10 14:53:00 | 显示全部楼层 |阅读模式
请到www.gamedevelop.net上的本站原创中下载……
压缩包中包括了dll,lib,头文件,实例,文档,以及一个文件打包压缩工具(JSFilePacker),支持epk格式!


下载


/////////////////////////////////////////////////////////////////////////////////////////////

简介
MDFile是一款使用方便、易于扩展的文件系统库,其扩展性体现在两个方面:
1.MDFile内部的epk(extendable package)文件格式的压缩编码方案通过edl(encoding/decoding library)插件可以扩展
2.MDFile支持的压缩包文件可扩展。默认的,MDFile只能打开后缀为.epk的文件格式,通过dll插件的扩展,可以支持zip,rar,lzh.....格式,只要有相应的插件库就可以了

特点:
1.使用简单
2.可扩展,通过edl或者epk方式扩展
3.支持外部检索(loss file)特性
4.epk格式安全性高,使用高效加密方案加密,保护数据的安全性
5.epk格式支持目录存储结构
6.epk格式支持单包多编码存储方式,能更有效压缩数据

支持平台:
VC++6,Microsoft Windows system

函数接口:


        CMD_File();
        初始化一个CMD_File的实例。

        CMD_File(char *ProviderName);
        初始化一个CMD_File的实例,同时挂接一个FileProvider。

        void        EnableShowErrorMSG(bool bshowerr); // 允许or禁止弹出错误信息
        参数:当出现错误时是否需要弹出一个错误警告窗口。
                bshowerr=true  -  弹出错误警告窗口
                bshowerr=false -  不要弹出
        返回值:无
        说明:当你进行一个CMD_File的操作的时候(比如:执行一个ConnectFileProvider("zipext.dll")),可能产生一个错误,例如zipext.dll不存在,这时MDFile会记录一个错误信息,如果此时EnableShowErrorMSG设置成true,系统就会弹出一个警告窗口,告诉你出错了。如果此时EnableShowErrorMSG是false,系统不会弹出一个警告窗口,但是你可以使用GetErrorCode来检索这个错误代码。

        void        EnableExtraFileFolder(bool bEnable); // 打开or禁用扩展搜索
        参数:是否允许外部检索
        返回值:无
        说明:当你读取一个文件的时候,如果指定了外部检索为true,那么系统首先会在对应的文件夹中搜索是否存在这个文件,如果不存在才去读取文件包中的文件。如:
                CMD_File file;
                EnableExtFileFolder(true);
                file.Open("test.epk");
                file.LocateFile("hi.txt");
                file.Read();        // 此时如果存在在test.epk文件一起的一个test文件夹,同时test文件夹下有hi.txt则系统会读取test文件夹下的hi.txt文件。如果不存在hi.txt文件系统才会读取test.epk包里的hi.txt文件

        void        SetExtFilePath(char *path);        // 设置扩展搜索路径
        参数:外部检索的基目录
        返回值:无
        说明:外部检索的目录规则是:基目录+文件包主名,如:SetExtFilePath

        bool        ConnectFileProvider(char *ProviderName);        // 联接到外部FileProvider
        void        FreeProvider();        // 释放FileProvider

        bool        Open(char* FileName,bool bReadOnly=true,bool bPacked=false,char *password=NULL);
        void        Close();
        bool        LocateFile(char* PathName,char *password=NULL);        // 定位一个文件
        DWORD        GetFileSize();                                // 取得当前文件的大小
        bool        Read(LPBYTE *buffer=NULL,DWORD size=0);        // 读取当前文件数据到引擎缓冲
        bool        Write(LPCVOID buffer,DWORD size);        // 写入当前文件
        bool        Seek(long move, BYTE method=FILE_CURRENT);        // 移动当前文件指针

        LPBYTE        GetBuffer(){ return m_lpBuffer; }        // 取得文件数据缓冲
        DWORD        GetBufferLen(){ return m_BufferLen; }
        bool        WriteBufferToFile(char *PathName);        // 将缓冲区数据写入文件







====================================================================================

@J--S Studio

www.gamedevelop.net
中国游戏开发技术资讯网


====================================================================================

7

主题

10

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2004-5-11 13:20:00 | 显示全部楼层

Re:一个免费的文件系统,功能多多,使用简单……

谢谢支持~~~~

2

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-5-11 22:30:00 | 显示全部楼层

Re:一个免费的文件系统,功能多多,使用简单……

好东西,谢谢啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-30 21:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表