适用于不同操作系统平台的虚拟文件系统及其应用的制作方法

文档序号:6383244阅读:278来源:国知局
专利名称:适用于不同操作系统平台的虚拟文件系统及其应用的制作方法
技术领域
本发明涉及一种虚拟文件系统,尤其是涉及一种适用于不同操作系统平台的虚拟文件系统及其应用。
背景技术
随着移动平台的流行,跨平台开发成了业界的主流,大量的基于IOS,andirod平台的软件开始出现,不同平台开发都需要文件操作,现有的方式是使用不同平台API分别读取相同的文件,这需要在程序迁移到其他的平台的时候,重新编写代码,而且需要维护2套不同的实现,重复工作很多,而且非常容易出错。为了使用不同的平台的IO文件操作,可以利用现有的文件压缩技术,将压缩文件作为虚拟的文件系统,使用压缩文件作为统一的文件封装层,将数据压缩过程从应用软件层移到操作系统中的文件系统层。

发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种适用于不同操作系统平台的虚拟文件系统及其应用。本发明的目的可以通过以下技术方案来实现一种适用于不同操作系统平台的虚拟文件系统,其特征在于,包括用户访问层、文件IO系统抽象层和物理磁盘存储层,所述的用户访问层、文件IO系统抽象层和物理磁盘存储层从上到下依次设置,所述的文件IO系统抽象层设有文件压缩单元和虚拟磁盘存储单元,所述的用户访问层通过虚拟磁盘存储单元向物理磁盘存储层写入或读出数据,数据的读入或写出都经过文件压缩单元处理。所述的文件IO系统抽象层中设有虚拟文件系统的目录结构,该虚拟文件系统的目录结构与物理磁盘存储层中的目录结构之间为—映射关系。一种适用于不同操作系统平台的虚拟文件系统的应用,其特征在于,包括以下步骤I)用户访问层向文件IO系统抽象层发送需要打开文件的路径;2)文件IO系统抽象层根据打开文件的路径查找虚拟文件系统的目录结构是否存在该文件,若存在,执行步骤3),否则,结束;3)文件IO系统抽象层读取物理磁盘存储层对应的文件,并将其装载成虚拟文件放入虚拟磁盘存储单元中;4)用户访问层直接打开并读写存储在虚拟磁盘存储单元中的虚拟文件。与现有技术相比,本发明具有以下优点1、由于上层的用户访问层只是通过接口进行物理磁盘数据访问,因此,文件IO系统抽象层使用户访问层和物理磁盘存储层完全隔离,提高了数据安全性;2、上层的用户访问层可以使用任何现有的文件系统,因此在无需修改任何代码的情况下就都可以让程序在不同的平台上进行文件IO操作;3、依赖压缩的文件格式,所以可以使用相同的方式在在不同的操作系统上运行,即利用成熟的文件格式,又减少了对非目标数据的压缩和解压缩操作,同时,整个压缩/解压缩过程对于用户完全透明;4、各个平台上代码实现方式相同,跨平台使用方便快捷。


图1为本发明的结构示意图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细说明。实施例如图1所示,一种适用于不同操作系统平台的虚拟文件系统,包括用户访问层1、文件IO系统抽象层2和物理磁盘存储层3,所述的用户访问层1、文件IO系统抽象层2和物理磁盘存储层3从上到下依次设置,所述的文件IO系统抽象层2设有文件压缩单元22和虚拟磁盘存储单元21,所述的用户访问层I通过虚拟磁盘存储单元21向物理磁盘存储层3写入或读出数据,数据的读入或写出都经过文件压缩单元22处理。所述的文件IO系统抽象层2中设有虚拟文件系统的目录结构,该虚拟文件系统的目录结构与物理磁盘存储层3中的目录结构之间为--映射关系。本发明的操作过程如下I)用户访问层向文件IO系统抽象层发送需要打开文件的路径;2)文件IO系统抽象层根据打开文件的路径查找虚拟文件系统的目录结构是否存在该文件,若存在,执行步骤3),否则,结束;3)文件IO系统抽象层读取物理磁盘存储层对应的文件,并将其装载成虚拟文件放入虚拟磁盘存储单元中;4)用户访问层直接打开并读写存储在虚拟磁盘存储单元中的虚拟文件。文件读写的函数(I)打开文件 virtual bool_stdcall Open (void) = 0;该函数打开压缩文件,准备好读写操作,打开文件必须在文件属于的目录已经打开的前提下操作,否则坑内会操作失败;(2)关闭文件 virtual void_stdcall Close (void) = 0;文件读写完毕后,关闭文件,释放资源;(3)文件长度 virtual_int64_stdcall getLength () = O ;该函数获得文件的长度,长度是未压缩的文件长度,用户层看不到压缩文件存在;(3)读取文件 virtual int_stdcall Read (char*buf, int len) = 0;该函数从文件读取定长的数据,返回实际读取的文件长度。Buf是放数据的缓存,这个必须在调用前创建,Ien需要读取的数据长度,读取后文件读写指针自动后移。(3)文件定位 virtual_int64_stdcall Seek(_int64 offset, XSeekffay way)=
该函数让读写指针移动到响应的位置,用于定位读写。(4)写入数据 virtual int—stdcall Write (char*buf,int len) = 0;该函数往文件层写入数据,buf是要写入的数据缓存,Ien是需要写入的数据的长度,写入后文件写指针停在写入的最后位置。
权利要求
1.一种适用于不同操作系统平台的虚拟文件系统,其特征在于,包括用户访问层、文件IO系统抽象层和物理磁盘存储层,所述的用户访问层、文件IO系统抽象层和物理磁盘存储层从上到下依次设置,所述的文件IO系统抽象层设有文件压缩单元和虚拟磁盘存储单元,所述的用户访问层通过虚拟磁盘存储单元向物理磁盘存储层写入或读出数据,数据的读入或写出都经过文件压缩单元处理。
2.根据权利要求1所述的一种适用于不同操作系统平台的虚拟文件系统,其特征在于,所述的文件IO系统抽象层中设有虚拟文件系统的目录结构,该虚拟文件系统的目录结构与物理磁盘存储层中的目录结构之间为—映射关系。
3.一种实施权利要求2所述的适用于不同操作系统平台的虚拟文件系统的应用,其特征在于,包括以下步骤 1)用户访问层向文件IO系统抽象层发送需要打开文件的路径; 2)文件IO系统抽象层根据打开文件的路径查找虚拟文件系统的目录结构是否存在该文件,若存在,执行步骤3),否则,结束; 3)文件IO系统抽象层读取物理磁盘存储层对应的文件,并将其装载成虚拟文件放入虚拟磁盘存储单元中; 4)用户访问层直接打开并读写存储在虚拟磁盘存储单元中的虚拟文件。
全文摘要
本发明涉及一种适用于不同操作系统平台的虚拟文件系统,包括用户访问层、文件IO系统抽象层和物理磁盘存储层,所述的用户访问层、文件IO系统抽象层和物理磁盘存储层从上到下依次设置,所述的文件IO系统抽象层设有文件压缩单元和虚拟磁盘存储单元,所述的用户访问层通过虚拟磁盘存储单元向物理磁盘存储层写入或读出数据,数据的读入或写出都经过文件压缩单元处理。与现有技术相比,本发明具有各个平台上代码实现方式相同,跨平台使用方便快捷等优点。
文档编号G06F17/30GK103020199SQ20121051637
公开日2013年4月3日 申请日期2012年12月5日 优先权日2012年12月5日
发明者崔长远, 谢胜蓝, 曹发 申请人:上海创图网络科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1