U盘上数据自动压缩和解压缩的方法技术

技术编号:2819340 阅读:245 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了U盘上数据自动压缩和解压缩的方法,U盘中存储有一个位于Window文件系统的输入输出子系统管理层和文件系统驱动层之间的U盘压缩驱动程序,所述U盘压缩驱动程序创建一个内核线程;当用户进程发出读写命令后,U盘压缩驱动程序从输入输出子系统管理层拦截读写命令并判断所述读写命令操作是否对指定的U盘进行;当读写命令操作是对指定的U盘进行时,所述U盘压缩驱动程序调用Windows的文件系统驱动层进行读写操作后,所述内核线程用于自动处理读写数据的压缩和解压缩;本发明专利技术通过在U盘上安装数据处理的软件来解决数据的压缩和解压缩,从而不用扩大U盘容量就可以有更大的存储量,使用方便,安全性和可靠性高。

【技术实现步骤摘要】

本专利技术涉及u盘上的数据处理方法,特别是实现u盘上数据自动压縮和解压 縮的方法。目前能够实现对存贮在我公司所生产u盘上的数据自动进行压縮和解压缩, 在不改变u盘容量的前提下大大提升u盘的实际存贮能力,在对驱动程序稍加修 改后就可以实现对所有u盘数据的压缩和解压縮。
技术介绍
近些年来,随着信息技术的飞速发展,信息的数据量也变得越来越庞大,虽然u盘作为新一代的存储设备,具有容量大的特点,但与需要存储的信息量相比, 仍然显得其容量不足,这就经常会导致原来的u盘因为容量太小而不能使用。 为了解决这个问题,国内外大多数公司采用的办法就是不断扩大u盘的容量,现在一般12个月会生产容量增加一倍的U盘,目前这种唯一的方法造成了很多不必要的浪费。
技术实现思路
本专利技术针对以上的问题提出了 u盘上数据自动压縮和解压縮的方法,通过在u 盘上安装数据处理的程序来解决数据的压縮和解压縮,从而达到不用扩大u盘容量也可以有更大的存储量的目的。本专利技术技术方案如下U盘上数据自动压縮和解压縮的方法,其特征在于U盘中存储有一个位于 Windows文,系统的输入输出子系统管理层(I/O Subsystem Manager)和文件系 统驱动层(File System Driver)之间的U盘压缩驱动程序(USBZip Driver), 所述U盘压縮驱动程序创建一个内核线程;当用户进程发出读写命令后,U盘压縮 驱动程序从输入输出子系统管理层拦截读写命令并判断该读写命令操作是否对指 定的U盘进行;当读写命令操作是对指定的U盘进行时,所述U盘压縮驱动程序 调用Windows的文件系统驱动层进行读写操作后,所述内核线程用于自动处理读 写数据的压縮和解压縮。 所述U盘压縮驱动程序在第一次使用时自动安装,以后在每次插入u盘时, Windows会自动加载己安装的U盘压縮驱动程序;当li盘被拔出时,U盘压縮驱动程序也会被自动卸载。桥述u盘压縮驱动程序自动加载后,打开u盘时,u盘压縮驱动程序创建内核线程;关闭U盘时,U盘压縮驱动程序会终止该内核线程。.所述内核线程一直处于睡眠状态,是通过U盘压縮驱动程序调用Windows的 文件系统驱动层进行读写操作之后,U盘压縮驱动程序为睡眠的内核线程准备好需 要压缩或解压縮的数据等参数信息的必要的数据后才唤醒内核线程,内核线程在 执行完压缩或者解压縮后会继续睡眠。也就是说在读操作时,U盘压縮驱动程序会 将内核线程返回的数据返回给用户进程,最后内核线程继续睡眠;在写操作的时, U盘压縮驱动程序会调用Windows的文件系统驱动层将返回的数据写入U盘,最后 内核线程继续睡眠。所述U盘压縮驱动程序调用Windows的文件系统驱动层进行读写操作之前, 还进行了文件夹重定向,将读写命令操作重新定向到硬盘上的一个临时目录中。当读写命令操作不是对指定的U盘进行时,输入输出子系统管理层就将读写 命令操作交给Windows的文件系统驱动层进行处理。U盘上数据自动解压縮的方法,其具体步骤为当Windows文件系统的输入输 出子系统管理层层传递下来的操作为读操作时,U盘压縮驱动程序会首先判断读操 作是否是对指定U盘进行,如果不是,U盘压縮驱动程序直接调用Windows的文件 系统驱动进行正常的读操作处理;如果是,U盘压缩驱动程序首先进行文件重定向, 将读取文件路径上包含的文件夹依次重定向到硬盘上的一个临时目录中,然后U 盘压縮驱动程序会在所述临时目录中创建一个与读取文件同名的重定向文件,然 后调用Windows的文件系统驱动将压縮信息和压縮数据从U盘中读出并为内核线 程准备好相应的数据,唤醒内核线程执行解压縮并等待内核线程返回结果,当内 核线程完成数据段的解压縮并返回结果后,U盘压縮驱动程序会记录已解压的数据 段信息,并将需要的数据返回给Windows文件系统的输入输出子系统。如果下一 次Windows又发起了对该文件相同数据段的读操作,U盘压縮驱动程序则根据上一 次的解压縮记录,直接调用Windows的文件系统驱动从重定向文件中读出需要的 数据返回给Windows文件系统的输入输出子系统。U盘上数据自动压縮的方法,其具体步骤为当Windows文件系统的输入输出子系统管理层传递下来的操作为写操作时,U盘压縮驱动程序首先判断所述读操作 是否是对指定U盘进行,如果不是,U盘压縮驱动程序直接调用Windows文件系统 的文件系统驱动层进行正常的写操作处理;如果是,U盘压缩驱动程序首先进行文 件夹的重定向,将读取文件路径上包含的文件夹依次重定向到磁盘上的一个临时 目录中,接着调用Windows文件系统的文件系统驱动层将数据先写入磁盘的临时 目录中,然后U盘压缩驱动程序为内核线程准备好相应的数据,唤醒内核线程并 等待内核线程返回结果,当内核线程进行了数据的解压縮并返回结果后,U盘压縮 驱动程序最后调用Windows文件系统的文件系统驱动层将数据写入U盘。所述压缩是当写文件到U盘时,首先将文件的数据按照指定的大小分段,然 后判断数据是否需要进行压縮,如果不需要,则直接将所有段的原始数据写入U 盘即可,如果需要,那么就进行数据压縮并将压縮后的数据写入U盘,最后还要 将压縮每段数据时产生的压縮信息组合起来构成整个文件的压縮信息写入U盘压 縮文件的末尾。这种分段的压縮方法区别于传统的压縮方式,传统的压縮方式是 采用流式压縮方法,即将需要压縮的数据做为一个整体进行压縮,这种方式在随 机读取解压縮文件的部分数据时效率是非常低的,分段压縮方式能够很好的解决 这个问题。所述解压縮是当读文件时,首先判断文件是否为USBZip Driver压縮的文件, 如果不是,则从U盘中直接读取文件中相应位置的数据即可,如果是,则先从U 盘中读取压縮文件末尾处的压縮信息,解析压縮信息,得到需要读取的数据在压 縮文件中的相应位置和长度,从U盘中读取压縮文件的相应块,解压縮这些数据 块最后得到原始数据。所述U盘压縮驱动程序在解压縮U盘上的文件数据到临时目录的重定向文件 时,舍记录已解压的数据段地址和长度到一个双向链表中,如果读操作所要访问 的数据段已经包含在这个双向链表时,链表保持不变,相反,链表向数据方向增 加,引起解压縮操作,这样就像一个可移动的窗口一样,因此我们称之为滑动窗 口的解压縮方式。为了方便用户,使之觉得支持自动压縮和解压縮的U盘和普通U盘的用法完 全相同,这种U盘会在量产时由定制的量产工具划分出一个隐藏分区,U盘压縮驱 动程序(USBZip Driver)和它的安装程序会被下载到这个隐藏分区中,在用户第 一次使用这种U盘时,在隐藏分区中的安装程序会自动将U盘压縮驱动程序(USBZip Driver)装入Windows操作系统。本专利技术能使用户在没有察觉任何区别的情况下就能大大提高u盘的实际存贮 能力,从而达到不用扩大U盘容量也可以有更大的存储量,另外还具备如下优点一、 驱动程序的自动安装装载驱动程序的可执行程序已经在U盘量产时下载到了 u盘的隐藏分区中,这个可执行程序能够自动将u盘上的驱动程序的安装到系统中,这样就避免了用户手动去安装驱动程序,减少了用户的麻烦,方便了用户;二、 驱动程序的自动装载与卸载实现了驱动程序在将U盘插入计算机时自动装载到操作系统内核中,在本文档来自技高网...

【技术保护点】
U盘上数据自动压缩和解压缩的方法,其特征在于:U盘中存储有一个位于Window文件系统的输入输出子系统管理层和文件系统驱动层之间的U盘压缩驱动程序,所述U盘压缩驱动程序创建一个内核线程;当用户进程发出读写命令后,U盘压缩驱动程序从输入输出子系统管理层拦截读写命令并判断所述读写命令操作是否对指定的U盘进行;当读写命令操作是对指定的U盘进行时,所述U盘压缩驱动程序调用Windows的文件系统驱动层进行读写操作后,所述内核线程用于自动处理读写数据的压缩和解压缩。

【技术特征摘要】

【专利技术属性】
技术研发人员:张宁军姚立行
申请(专利权)人:四川登巅微电子有限公司
类型:发明
国别省市:90[中国|成都]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利