一种文件系统管理方法、系统和文件系统管理器的制作方法

文档序号:6465199阅读:239来源:国知局
专利名称:一种文件系统管理方法、系统和文件系统管理器的制作方法
技术领域
本发明涉及计算机技术领域,具体涉及一种文件系统管理方法、系统和文 件系统管理器。
背景技术
随着计算机软硬件技术的发展,在一个大型的软件系统开发过程中,会使 用到很多不同类型的文件系统。例如,在一些游戏的开发过程中,为了提高资 源文件的访问性能,会把部分或者全部资源文件的数据緩冲到内存中,此时,
就使用到内存文件系统;而当检测到用户机器上内存比较少,而不能采用緩冲 内存的方式来提供较高的访问性能时,访问的接口就需要切换成Windows (微 软公司生产的"视窗1乘作系统)文件系统或者压缩文件系统了。在一个软件的 运行过程中,可能会对多种类型的文件系统进行操作,例如,Windows文件系 统、压缩文件系统、内存文件系统、复合文档系统等。对这些文件的操作方法 是不同的。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于在一个软 件的运行过程中可能会对多种类型的文件进行操作,而不同类型的文件操作方 法不同,需要开发人员对自己所使用软件的相应操作接口都要熟悉,才能正确 地操作所有这些文件系统,因此会给开发人员带来较大的开发难度。同时,在 编写相应的访问代码时需要针对不同的文件系统编写不同的代码,降低了代码 的可维护性。

发明内容
本发明实施例提供一种文件系统管理方法、系统和文件系统管理器,能够 实现不同类型文件系统的统一管理和维护。 一种文件系统管理方法,该方法包括
加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型 的文件系统;根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应 的操作。
一种文件系统管理系统,该文件系统管理系统包括文件系统、文件系统 管理器,其中
文件系统,具有统一操作接口,所述统一操作接口用于操作不同类型的文 件系统;
文件系统管理器,用于加载所述文件系统,并根据用户操作指令,使用所 述统一操作接口 ,对指定的文件系统执行对应的操作。
一种文件系统管理器,该文件系统管理器包括加载器、操作执行器,其

加载器,用于加载具有统一操作接口的文件系统,所述统一操作接口用于 操作不同类型的文件系统;
操作执行器,用于根据用户操作指令,使用所述统一操作接口,对指定的 文件系统执行对应的操作。
从以上技术方案可以看出,本发明实施例通过加载具有统一操作接口的文 件系统,所述统一操作接口用于操作不同类型的文件系统,并根据用户操作指 令,使用所述统一操作接口,对指定的文件系统执行对应的操作。由于所述统 一操作接口能够支持不同类型的文件系统,因此可以对不同类型的文件系统进
行统一的管理和维护,开发人员也不需要了解文件系统的具体细节,通过所述 统一操作接口即可对文件系统进行相应地操作,因此,可以降低开发难度。同 时,由于只需要为所需要的文件系统实现所述统一操作接口,而不需要针对不 同的文件系统编写不同的代码,因此,可以提高代码的可维护性。综上,由于 可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。


图l是本发明实施例中文件系统管理方法实施例流程图; 图2是本发明实施例中文件系统管理系统实施例结构示意图; 图3是本发明实施例中文件系统管理器实施例一结构示意图; 图4是本发明实施例中文件系统管理器实施例二结构示意图。
具体实施例方式
本发明实施例提供一种文件系统管理方法、系统和文件系统管理器,能够 实现对不同类型文件系统的统一管理和维护。
为使本发明实施例的目的、技术方案及优点更加清楚明了 ,以下参照附图, 分别进行详细说明。
参照图l,为本发明实施例中文件系统管理方法实施例一流程图,以下通
过具体步骤进行详细i兌明
步骤ll、加载具有统一操作接口的文件系统,所述统一操作接口用于操作 不同类型的文件系统;
例如,可以设置一个文件系统管理器,在包含有文件系统管理器的软件系 统初始化时,加载所有具有统一操作接口的文件系统,也可以在软件系统运行 过程中加载所需要的文件系统。
统一操作接口是通过对所有文件系统的操作进行归纳抽象,所定义的统一 的操作接口 ,可以包括目录文件操作接口 ,也可以包括文件内容操作接口 ,也 可以根据需要定义一些文件系统中需要的统一的操作接口 。以下举例说明一些 统一操作接口的定义
1)目录文件操作接口 interface IFileSystem
〃/创建目录
HRESULT CreateDirectory( [in] BSTR bsDirectoryName );
〃/删除目录
HRESULT DeleteDirectory( [in] BSTR bsDirectoryName);
〃/重命名目录
HRESULT RenameDirectory( [in] BSTR bsNameOld,[in] BSTR bsNameNew);
〃/复制目录
HRESULT CopyDirectory( [in] BSTRbsSrcDir,[in] BSTR bsDestDir,[in]ITXCopyDirProgress* pProgress);
〃/删除文件
HRESULT DeleteFile( [in] BSTR bsF諸ame );
〃/重命名文件
HRESULT RenameFile( [in] BSTR bsNameOld, [in] BSTRbsNameNew);
〃/复制文件
HRESULT CopyFile( [in] BSTRbsSrcFile,[in] BSTRbsDestFile,[in] BOOL bFaillffixist);
〃/移动文件
HRESULT MoveFile( [in] BSTRbsSrcFile, [in] BSTR bsDestFile, [in] BOOL bFailI伍xist);
〃/创建文件
HRESULT CreateFile( [in] BSTR bsFileName,[in] DWORD dwOpenFlag,[out] ITXFile** ppFile);
2)文件内容操作接口 interface IFile
〃/获取当前文件的光标位置
HRESULT GetPosition( [out] UINT64* pun64Pos );
〃/获取当前文件的文件名
HRESULT GetFileName( [out] BSTR* pbsF諸ame );
〃/获取当前文件的全路径
HRESULT GetFullFileName( [out] BSTR* pbsFullFileName ); 〃/判断当前文件的光标位置是否到结束位置 HRESULT IsEOF( [out] BOOL* pbEnd);〃/关闭当前文件HRESULT Close();〃/设置当前文件的光标位置到文件结尾 HRESULT SeekToEnd( [out,optional] UINT* puCurrentPos);〃/设置当前文件的光标位置到文件起始位置 HRESULT SeekToBegin(); 〃/设置当前文件的光标位置到指定的位置HRESULT Seek([in] int nOffset, [in] int tiFromMothed,[out,opticmal] UINT* puCurrentPos );〃/设置当前文件的长度HRESULT SetLength( [in] UINT uNewLen);〃/获取文件的长度HRESULT GetLength( [out] UINT* puLen);〃/按照字节数读取当前文件数据,内部分配緩沖区内存 HRESULT Read([in] LPCVOID lpBuffer, [in] DWORD nNumberOffiytesToRead, [out] LPDWORD lpNumberOffiytesRead);〃/写入文件数据HRESULT Write([in] LPCVOID lpBuffer, [in] DWORD nNumberOfflytesToWrite, [out] LPDWORD lpNumberOffiytesWritten);以上为本实施例中文件系统管理器所定义的统一操作接口 ,包括目录文件 操作接口和文件内容操作接口,只需要修改文件系统的已有的操作接口,在已有的接口之上添加定义的上述统一操作接口即可。其中,"〃/"后的内容用于 表示下面所定义的才喿作接口的功能,"HRESULT CreateDirectory( [in] BSTR bsDirectoryName)"等内容用于表示所定义的统一操作接口 。例如,每个类型 的文件系统在进行文件系统管理时,对于"创建目录"这一操:作,都采用 "HRESULT CreateDirectory( [in] BSTR bsDirectoryName ),,这一统一才喿作才妄 口,对于"获取当前文件的光标位置"这一操作,都采用"HRESULTGetPosition( [out] UINT64* pun64Pos )"这一操作,等等,使得所有的文件系 统对于同一操作都使用同样的操作接口 。可以理解的是,具有上述功能的统一操作接口不是唯一的,并不限定同样 功能的操作接口只能采用上述定义,只要文件系统所支持的统一操作接口与文 件系统管理器定义的操作接口对应即可。而且,用户可以根据需要定义一些别 的统一操作接口来实现用户所需要的功能,不再——举例说明。步骤12、根据用户操作指令,使用所述统一操作接口,对指定的文件系统 执行对应的操作。所有加载的文件系统由文件系统管理器进行统一管理,当需要用到某种文 件系统时,向文件系统请求统一操作接口中的相应文件系统的接口 ,文件管理 器使用统一操作接口中的相应的文件系统接口来操作指定的文件系统。当开发过程中需要切换到其他文件系统时,再次向文件系统管理器请求对 应的接口,由于采用统一操作接口,接口一致,所以之前实现的操作逻辑不需 要任何修改即可操作新的文件系统。从该实施例可以看出,通过加载具有统一操作接口的文件系统,所述统一 操作接口用于操作不同类型的文件系统,并根据用户操作指令,使用所述统一 操作接口,对指定的文件系统执行对应的操作,由于所述统一操作接口能够支 持不同类型的文件系统,因此可以实现对不同类型的文件系统的统一管理和维 护,开发人员不需要了解文件系统的具体细节,通过所述统一操作接口即可对 文件系统进行相应地操作,因此,可以降低开发难度。同时,由于只需要为所 需要的文件系统实现所述统一操作接口 ,不需要针对不同的文件系统编写不同 的代码,因此,可以提高代码的可维护性。综上可知,上述文件系统管理方法 可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。可以理解的是,支持所述文件系统管理器中所定义的统一操作接口的各种 文件系统都可以预先注册到所述文件系统管理器中,当有新的文件系统中,扩 展所述新的文件系统的操作接口 ,使其实现所述统一操作接口,并将其注册到 文件系统管理器中。这样,在开发过程中需要引入新的文件系统时,使其支持 所述统一操作接口,并直接置于所述文件系统管理器之下,就可以提供给开发人员使用,开发人员不需要对这种文件系统有特别深入的了解,因此,可以有 效提高文件系统的可扩展性,提高代码的可维护性,使开发人员可以非常容易 地切换到不同的文件系统中,因而可以提高开发效率。
以上对本发明实施例中的文件系统管理方法进行了详细描述,为使本领域 技术人员更好地理解和实现本发明实施例,以下对该方法对应的文件系统管理
系统及文件管理器进行对应描述
参照图2,为本发明实施例中文件系统管理系统实施例结构示意图,该系 统包括文件系统21、文件系统管理器22,其中
文件系统21 ,具有统一操作接口 ,所述统一操作接口用于操作不同类型的 文件系统;
文件系统管理器22,用于加载所述文件系统21,并根据用户操作指令,使 用所述统一操作接口 ,对指定的文件系统执行对应的操作。
上述文件系统管理系统中,可以在文件系统管理器22初始化时,加载所有 具有统一操作接口的文件系统21 (例如,图2中,从文件系统l至文件系统n), 所有加载的文件系统21由文件系统管理器22统一管理,当接收到用户需要某种 文件系统的指令时,文件系统管理器可以使用统一操作接口来操作指定的文件 系统。
上述的文件系统管理器22还可以用于注册新的文件系统,所述新的文件系 统具有所述统一操作接口 。
统一操作接口可以是统一的目录文件操作接口,例如,使用所述统一操作 接口可以对不同的文件系统执行创建目录、删除目录、重命名目录、复制目录 等操作,对不同的文件执行删除文件、重命名文件、复制文件、移动文件等操 作。对于不同文件系统的文件内容也可以定义对应的统一4喿作接口 ,例如,获
取当前文件的光标位置、获取当前文件的文件名、判断当前文件的全路径、判 断当前文件的光标位置是否到结束位置、关闭当前文件等等操作。用户也可以 根据需要对所有的文件系统抽象、定义出新的统一操作接口,不再——举例说 明。
可见,该文件系统管理系统通过加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统,并根据用户操作指令,使用所述 统一操作接口,对指定的文件系统执行对应的操作,由于所述统一操作接口能 够支持不同类型的文件系统,因此可以实现对不同类型的文件系统的统一管理 和维护,开发人员不需要了解文件系统的具体细节,通过所述统一操作接口即 可对文件系统进行相应地操作,因此,可以降低开发难度。同时,由于只需要 为所需要的文件系统实现所述统一操作接口 ,不需要针对不同的文件系统编写 不同的代码,因此,可以提高代码的可维护性。综上可知,上述文件系统管理 系统可以降低开发难度并提高代码的可維护性,因此可以提高开发效率。
参照图3,为本发明实施例中文件系统管理器实施例一结构示意图,该文
件系统管理器包括加载器31、操作执行器32,其中
加载器31,用于加载具有统一操作接口的文件系统,所述统一操作接口用 于操作不同类型的文件系统;
操作执行器32,用于根据用户操作指令,使用所述统一操作接口,对指定 的文件系统执行对应的操作。
可见,使用所述文件系统管理器可以加载具有统一操作接口的文件系统, 所述统一操作接口用于操作不同类型的文件系统,并根据用户操作命令,使用 所述统一操作接口,对指定的文件执行对应的操作,从而实现对不同类型文件 系统的统一管理和维护,开发人员不需要了解文件系统的具体细节,通过所述 统一操作接口即可对文件系统进行相应地操作,因此,可以降低开发难度。同 时,由于只需要为所需要的文件系统实现所述统一操作接口,不需要针对不同 的文件系统编写不同的代码,因此,可以提高代码的可维护性。综上可知,上 述文件系统管理系统可以降低开发难度并提高代码的可维护性,因此可以提高 开发效率。
参照图4,为本发明实施例中文件系统管理器实施例二结构示意图,在上 一文件系统管理器实施例基础上,还可包括注册器41,用于注册具有所述统 一操作4妄口的新的文件系统。
通过注册器注册到该文件系统管理器后,该文件系统管理器将该文件系统 加载后,即可以使用统一操作接口进行统一管理,利于文件系统的扩展和代码的维护,可以提高开发效率。
以上文件系统管理器所介绍的统一操作接口为对不同类型的文件系统的 操作进行归纳抽象所定义的统一的操作接口 ,用于实现不同类型文件系统的相
同的操作。所述统一操作接口可以包括统一的目录文件操作接口,例如,使
用所述统一操作接口可以对不同的文件系统执行创建目录、删除目录、重命名 目录、复制目录等操作,对不同的文件执行删除文件、重命名文件、复制文件、 移动文件等操作。对于不同文件系统的文件内容也可以定义对应的统一操作接 口,例如,获取当前文件的光标位置、获取当前文件的文件名、判断当前文件 的全路径、判断当前文件的光标位置是否到结束位置、关闭当前文件等等操作。 用户也可以根据需要对所有的文件系统抽象、定义出新的统一操作接口,不再
——举例i兑明。
骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于 一计算机可读
存储介质中,存储介质可以包括ROM、 RAM、,兹盘或光盘等。
以上对本发明实施例所提供的文件系统管理方法、系统以及文件系统管理
对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围 上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种文件系统管理方法,其特征在于,包括加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
2、 如权利要求l所述的文件系统管理方法,其特征在于,进一步包括 将新的文件系统进行修改,使其具有所述统一操作接口 ; 注册所述具有统一操作接口的文件系统。
3、 如权利要求1或2所迷的文件系统管理方法,其特征在于,所述统一操 作接口包括统一的目录文件操作接口和统一的文件内容操作接口其中至少一种。
4、 一种文件系统管理系统,其特征在于,包括文件系统、文件系统管 理器,其中文件系统,具有统一操作接口,所述统一操作接口用于操作不同类型的文 件系统;文件系统管理器,用于加载所述文件系统,并根据用户操作指令,使用所 述统一操作接口 ,对指定的文件系统执行对应的操作。
5、 如权利要求4所述的文件系统管理系统,其特征在于,所述文件系统管理器还用于注册新的文件系统,所述新的文件系统具有所 述统一操作接口。
6、 如权利要求4或5所述的文件系统管理系统,其特征在于所述统一操 作接口包括统一的目录文件操作接口和统一的文件内容操作接口至少其中一种。
7、 一种文件系统管理器,其特征在于,包括加载器、操作执行器,其中加载器,用于加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;操作执行器,用于根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
8、 如权利要求7所述的文件系统管理器,其特征在于,还包括注册器,用 于注册具有所述统一操作接口的新的文件系统。
9、 如权利要求7或8所述的文件系统管理器,其特征在于,所述统一操作 接口包括统一的目录文件操作接口和统一的文件内容操作接口至少其中一 种。
全文摘要
本发明公开了一种文件系统管理方法,所述方法包括加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。本发明实施例还提供相应的文件系统管理系统及文件系统管理器。通过所述统一操作接口即可对文件系统进行相应地操作,可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。
文档编号G06F9/44GK101290576SQ20081012577
公开日2008年10月22日 申请日期2008年6月25日 优先权日2008年6月25日
发明者于长青, 刘晓聪, 斌 李, 李训耕 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1