公开/公告号CN101290576A
专利类型发明专利
公开/公告日2008-10-22
原文格式PDF
申请/专利权人 腾讯科技(深圳)有限公司;
申请/专利号CN200810125776.0
申请日2008-06-25
分类号G06F9/44(20060101);
代理机构11227 北京集佳知识产权代理有限公司;
代理人逯长明
地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东410室
入库时间 2023-12-17 20:53:53
法律状态公告日
法律状态信息
法律状态
2019-09-06
专利权的转移 IPC(主分类):G06F9/44 登记生效日:20190819 变更前: 变更后:
专利申请权、专利权的转移
2012-02-08
授权
授权
2008-12-17
实质审查的生效
实质审查的生效
2008-10-22
公开
公开
技术领域
本发明涉及计算机技术领域,具体涉及一种文件系统管理方法、系统和文件系统管理器。
背景技术
随着计算机软硬件技术的发展,在一个大型的软件系统开发过程中,会使用到很多不同类型的文件系统。例如,在一些游戏的开发过程中,为了提高资源文件的访问性能,会把部分或者全部资源文件的数据缓冲到内存中,此时,就使用到内存文件系统;而当检测到用户机器上内存比较少,而不能采用缓冲内存的方式来提供较高的访问性能时,访问的接口就需要切换成Windows(微软公司生产的“视窗”操作系统)文件系统或者压缩文件系统了。在一个软件的运行过程中,可能会对多种类型的文件系统进行操作,例如,Windows文件系统、压缩文件系统、内存文件系统、复合文档系统等。对这些文件的操作方法是不同的。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于在一个软件的运行过程中可能会对多种类型的文件进行操作,而不同类型的文件操作方法不同,需要开发人员对自己所使用软件的相应操作接口都要熟悉,才能正确地操作所有这些文件系统,因此会给开发人员带来较大的开发难度。同时,在编写相应的访问代码时需要针对不同的文件系统编写不同的代码,降低了代码的可维护性。
发明内容
本发明实施例提供一种文件系统管理方法、系统和文件系统管理器,能够实现不同类型文件系统的统一管理和维护。
一种文件系统管理方法,该方法包括:
加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;
根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
一种文件系统管理系统,该文件系统管理系统包括:文件系统、文件系统管理器,其中:
文件系统,具有统一操作接口,所述统一操作接口用于操作不同类型的文件系统;
文件系统管理器,用于加载所述文件系统,并根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
一种文件系统管理器,该文件系统管理器包括:加载器、操作执行器,其中:
加载器,用于加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;
操作执行器,用于根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
从以上技术方案可以看出,本发明实施例通过加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统,并根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。由于所述统一操作接口能够支持不同类型的文件系统,因此可以对不同类型的文件系统进行统一的管理和维护,开发人员也不需要了解文件系统的具体细节,通过所述统一操作接口即可对文件系统进行相应地操作,因此,可以降低开发难度。同时,由于只需要为所需要的文件系统实现所述统一操作接口,而不需要针对不同的文件系统编写不同的代码,因此,可以提高代码的可维护性。综上,由于可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。
附图说明
图1是本发明实施例中文件系统管理方法实施例流程图;
图2是本发明实施例中文件系统管理系统实施例结构示意图;
图3是本发明实施例中文件系统管理器实施例一结构示意图;
图4是本发明实施例中文件系统管理器实施例二结构示意图。
具体实施方式
本发明实施例提供一种文件系统管理方法、系统和文件系统管理器,能够实现对不同类型文件系统的统一管理和维护。
为使本发明实施例的目的、技术方案及优点更加清楚明了,以下参照附图,分别进行详细说明。
参照图1,为本发明实施例中文件系统管理方法实施例一流程图,以下通过具体步骤进行详细说明:
步骤11、加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;
例如,可以设置一个文件系统管理器,在包含有文件系统管理器的软件系统初始化时,加载所有具有统一操作接口的文件系统,也可以在软件系统运行过程中加载所需要的文件系统。
统一操作接口是通过对所有文件系统的操作进行归纳抽象,所定义的统一的操作接口,可以包括目录文件操作接口,也可以包括文件内容操作接口,也可以根据需要定义一些文件系统中需要的统一的操作接口。以下举例说明一些统一操作接口的定义:
1)目录文件操作接口
interface IFileSystem
{
///创建目录
HRESULT CreateDirectory([in]BSTR bsDirectoryName);
///删除目录
HRESULT DeleteDirectory([in]BSTR bsDirectoryName);
///重命名目录
HRESULT RenameDirectory([in]BSTR bsNameOld,[in]BSTR
bsNameNew);
///复制目录
HRESULT CopyDirectory([in]B STR bsSrcDir,[in]B STR bsDestDir,[in]
ITXCopyDirProgress*pProgress);
///删除文件
HRESULT DeleteFile([in]BSTR bsFileName);
///重命名文件
HRESULT RenameFile([in]BSTR bsNameOld,[in]BSTR bsNameNew);
///复制文件
HRESULT CopyFile([in]BSTR bsSrcFile,[in]BSTR bsDestFile,[in]
BOOL bFailIfExist);
///移动文件
HRESULT MoveFile([in]BSTR bsSrcFile,[in]BSTR bsDestFile,[in]
BOOL bFailIfExist);
///创建文件
HRESULT CreateFile([in] BSTR bsFileName,[in] DWORD
dwOpenFlag,[out]ITXFile**ppFile);
}
2)文件内容操作接口
interface IFile
{
///获取当前文件的光标位置
HRESULT GetPosition([out]UINT64*pun64Pos);
///获取当前文件的文件名
HRESULT GetFileName([out]BSTR*pbsFileName);
///获取当前文件的全路径
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 nFromMothed,[out,optional]
UINT*puCurrentPos);
///设置当前文件的长度
HRESULT SetLength([in]UINT uNewLen);
///获取文件的长度
HRESULT GetLength([out]UINT*puLen);
///按照字节数读取当前文件数据,内部分配缓冲区内存
HRESULT Read([in]LPCVOID lpBuffer,[in]DWORD
nNumberOfBytesToRead,[out]LPDWORD lpNumberOfBytesRead);
///写入文件数据
HRESULT Write([in]LPCVOID lpBuffer,[in]DWORD
nNumberOfBytesToWrite,[out]LPDWORD lpNumberOfBytesWritten);
}
以上为本实施例中文件系统管理器所定义的统一操作接口,包括目录文件操作接口和文件内容操作接口,只需要修改文件系统的已有的操作接口,在已有的接口之上添加定义的上述统一操作接口即可。其中,“///”后的内容用于表示下面所定义的操作接口的功能,“HRESULT CreateDirectory([in]BSTRbsDirectoryName)”等内容用于表示所定义的统一操作接口。例如,每个类型的文件系统在进行文件系统管理时,对于“创建目录”这一操作,都采用“HRESULT CreateDirectory([in]BSTR bsDirectoryName)”这一统一操作接口,对于“获取当前文件的光标位置”这一操作,都采用“HRESULTGetPosition([out]UINT64*pun64Pos)”这一操作,等等,使得所有的文件系统对于同一操作都使用同样的操作接口。
可以理解的是,具有上述功能的统一操作接口不是唯一的,并不限定同样功能的操作接口只能采用上述定义,只要文件系统所支持的统一操作接口与文件系统管理器定义的操作接口对应即可。而且,用户可以根据需要定义一些别的统一操作接口来实现用户所需要的功能,不再一一举例说明。
步骤12、根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
所有加载的文件系统由文件系统管理器进行统一管理,当需要用到某种文件系统时,向文件系统请求统一操作接口中的相应文件系统的接口,文件管理器使用统一操作接口中的相应的文件系统接口来操作指定的文件系统。
当开发过程中需要切换到其他文件系统时,再次向文件系统管理器请求对应的接口,由于采用统一操作接口,接口一致,所以之前实现的操作逻辑不需要任何修改即可操作新的文件系统。
从该实施例可以看出,通过加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统,并根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作,由于所述统一操作接口能够支持不同类型的文件系统,因此可以实现对不同类型的文件系统的统一管理和维护,开发人员不需要了解文件系统的具体细节,通过所述统一操作接口即可对文件系统进行相应地操作,因此,可以降低开发难度。同时,由于只需要为所需要的文件系统实现所述统一操作接口,不需要针对不同的文件系统编写不同的代码,因此,可以提高代码的可维护性。综上可知,上述文件系统管理方法可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。
可以理解的是,支持所述文件系统管理器中所定义的统一操作接口的各种文件系统都可以预先注册到所述文件系统管理器中,当有新的文件系统中,扩展所述新的文件系统的操作接口,使其实现所述统一操作接口,并将其注册到文件系统管理器中。这样,在开发过程中需要引入新的文件系统时,使其支持所述统一操作接口,并直接置于所述文件系统管理器之下,就可以提供给开发人员使用,开发人员不需要对这种文件系统有特别深入的了解,因此,可以有效提高文件系统的可扩展性,提高代码的可维护性,使开发人员可以非常容易地切换到不同的文件系统中,因而可以提高开发效率。
以上对本发明实施例中的文件系统管理方法进行了详细描述,为使本领域技术人员更好地理解和实现本发明实施例,以下对该方法对应的文件系统管理系统及文件管理器进行对应描述:
参照图2,为本发明实施例中文件系统管理系统实施例结构示意图,该系统包括:文件系统21、文件系统管理器22,其中:
文件系统21,具有统一操作接口,所述统一操作接口用于操作不同类型的文件系统;
文件系统管理器22,用于加载所述文件系统21,并根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
上述文件系统管理系统中,可以在文件系统管理器22初始化时,加载所有具有统一操作接口的文件系统21(例如,图2中,从文件系统1至文件系统n),所有加载的文件系统21由文件系统管理器22统一管理,当接收到用户需要某种文件系统的指令时,文件系统管理器可以使用统一操作接口来操作指定的文件系统。
上述的文件系统管理器22还可以用于注册新的文件系统,所述新的文件系统具有所述统一操作接口。
统一操作接口可以是统一的目录文件操作接口,例如,使用所述统一操作接口可以对不同的文件系统执行创建目录、删除目录、重命名目录、复制目录等操作,对不同的文件执行删除文件、重命名文件、复制文件、移动文件等操作。对于不同文件系统的文件内容也可以定义对应的统一操作接口,例如,获取当前文件的光标位置、获取当前文件的文件名、判断当前文件的全路径、判断当前文件的光标位置是否到结束位置、关闭当前文件等等操作。用户也可以根据需要对所有的文件系统抽象、定义出新的统一操作接口,不再一一举例说明。
可见,该文件系统管理系统通过加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统,并根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作,由于所述统一操作接口能够支持不同类型的文件系统,因此可以实现对不同类型的文件系统的统一管理和维护,开发人员不需要了解文件系统的具体细节,通过所述统一操作接口即可对文件系统进行相应地操作,因此,可以降低开发难度。同时,由于只需要为所需要的文件系统实现所述统一操作接口,不需要针对不同的文件系统编写不同的代码,因此,可以提高代码的可维护性。综上可知,上述文件系统管理系统可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。
参照图3,为本发明实施例中文件系统管理器实施例一结构示意图,该文件系统管理器包括:加载器31、操作执行器32,其中:
加载器31,用于加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统;
操作执行器32,用于根据用户操作指令,使用所述统一操作接口,对指定的文件系统执行对应的操作。
可见,使用所述文件系统管理器可以加载具有统一操作接口的文件系统,所述统一操作接口用于操作不同类型的文件系统,并根据用户操作命令,使用所述统一操作接口,对指定的文件执行对应的操作,从而实现对不同类型文件系统的统一管理和维护,开发人员不需要了解文件系统的具体细节,通过所述统一操作接口即可对文件系统进行相应地操作,因此,可以降低开发难度。同时,由于只需要为所需要的文件系统实现所述统一操作接口,不需要针对不同的文件系统编写不同的代码,因此,可以提高代码的可维护性。综上可知,上述文件系统管理系统可以降低开发难度并提高代码的可维护性,因此可以提高开发效率。
参照图4,为本发明实施例中文件系统管理器实施例二结构示意图,在上一文件系统管理器实施例基础上,还可包括:注册器41,用于注册具有所述统一操作接口的新的文件系统。
通过注册器注册到该文件系统管理器后,该文件系统管理器将该文件系统加载后,即可以使用统一操作接口进行统一管理,利于文件系统的扩展和代码的维护,可以提高开发效率。
以上文件系统管理器所介绍的统一操作接口为对不同类型的文件系统的操作进行归纳抽象所定义的统一的操作接口,用于实现不同类型文件系统的相同的操作。所述统一操作接口可以包括:统一的目录文件操作接口,例如,使用所述统一操作接口可以对不同的文件系统执行创建目录、删除目录、重命名目录、复制目录等操作,对不同的文件执行删除文件、重命名文件、复制文件、移动文件等操作。对于不同文件系统的文件内容也可以定义对应的统一操作接口,例如,获取当前文件的光标位置、获取当前文件的文件名、判断当前文件的全路径、判断当前文件的光标位置是否到结束位置、关闭当前文件等等操作。用户也可以根据需要对所有的文件系统抽象、定义出新的统一操作接口,不再一一举例说明。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的文件系统管理方法、系统以及文件系统管理器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
机译: 文件管理器和文件管理方法,以及数据库文件系统和数据库文件管理方法
机译: 文件系统管理方法,文件系统管理装置以及记录有文件系统管理程序的媒体
机译: 共享文件系统中文件系统对象的分布式锁管理器