CN103034587A - 一种复制文件的方法及装置 - Google Patents

一种复制文件的方法及装置 Download PDF

Info

Publication number
CN103034587A
CN103034587A CN2012105549336A CN201210554933A CN103034587A CN 103034587 A CN103034587 A CN 103034587A CN 2012105549336 A CN2012105549336 A CN 2012105549336A CN 201210554933 A CN201210554933 A CN 201210554933A CN 103034587 A CN103034587 A CN 103034587A
Authority
CN
China
Prior art keywords
storage area
data page
pointer
file
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105549336A
Other languages
English (en)
Other versions
CN103034587B (zh
Inventor
邓明飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Jiaying Juhe Technology Service Co ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210554933.6A priority Critical patent/CN103034587B/zh
Publication of CN103034587A publication Critical patent/CN103034587A/zh
Application granted granted Critical
Publication of CN103034587B publication Critical patent/CN103034587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种复制文件的方法及装置,属于计算机领域。所述方法包括:对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应;在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。本发明能够减少用户等待复制文件的时间。

Description

一种复制文件的方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种复制文件的方法及装置。
背景技术
在计算机领域,文件复制是用户常用的基本操作之一,用户常常选择一个源文件向终端提交复制请求命令来请求终端复制源文件,然后终端对源文件进行复制得到源文件对应的副本文件。
其中,现有技术在复制文件时,需要等待副本文件完全将源文件的数据复制之后才可以被读写,在复制过程中,副本文件不可被读写;然而随着信息产业的迅猛发展,大容量的文件越来越多,通过现有技术对大容量的源文件进行复制时,用户需要等待较长的时间后才对副本文件进行读写。
发明内容
为了减少用户等待复制文件的时间以及当源文件和副本文件存储在不同的存储介质中并移走源文件所在的存储介质时,保证副本文件还可用,本发明提供了一种复制文件的方法及装置。所述技术方案如下:
一种复制文件的方法,所述方法包括:
对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应,所述第一存储区域包括数据区域和指针区域,所述第二存储区域包括数据区域和指针区域,所述第一存储区域包括的数据区域用于存储所述第一存储区域对应的数据页;
在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;
将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
所述在所述数据页对应的第二存储区域包括的数据区域中设置数据指针之后,还包括:
如果修改所述副本文件的某数据页,则接收用于写入副本文件的请求消息以及所述数据页对应的新数据页,将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中。
所述将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中之前,还包括:
在所述副本文件中获取所述数据页对应的第二存储区域包括的数据区域内存储的数据指针,根据所述获取的数据指针在所述源文件中获取所述数据页对应的第一存储区域,清空所述第一存储区域包括的指针区域内存储的副本指针。
所述在所述数据页对应的第二存储区域包括的数据区域中设置数据指针之后,还包括:
如果修改所述源文件的某数据页,则接收用于写入源文件的请求消息以及所述数据页对应的新数据页,在所述源文件中的所述数据页对应的第一存储区域中读取所述数据页和副本指针,根据所述副本指针在所述副本文件中获取所述数据页对应的第二存储区域,将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,以及将所述数据页对应的新数据页存储在所述数据页对应的第一存储区域包括的数据区域中。
所述将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中之后,还包括:
清空所述数据页对应的第一存储区域包括的指针区域中存储的副本指针。
所述方法还包括:
接收需要复制的第一文件和用于复制所述第一文件的请求消息,对所述第一文件的文件结构进行复制得到第二文件的文件结构,所述第一文件包括一个或多个存储区域,所述第二文件包括一个或多个第二存储区域,所述第一文件包括的存储区域分别与所述第一文件包括的数据页一一对应,所述第二文件包括的第二存储区域分别与所述第一文件包括的数据页一一对应;
扫描所述第一文件包括的数据页对应的存储区域,如果所述扫描的存储区域包括的指针区域为空,在所述扫描的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述扫描的存储区域;
将所述第一文件包括的数据页分别复制到所述第二文件中对应的第二存储区域包括的数据区域中。
所述方法还包括:
如果所述扫描的存储区域包括的指针区域中存储有副本指针,获取所述副本指针指向的第二存储区域,如果所述获取的副本指针指向的第二存储区域包括的指针区域为空,则在所述获取的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述获取的第二存储区域,如果所述获取的第二存储区域包括的指针区域存储有副本指针,则获取所述副本指针指向的第二存储区域。
所述在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针之后,还包括:
如果修改所述第一文件的某数据页,则接收用于写入第一文件的请求消息以及所述数据页对应的新数据页,获取所述数据页在所述第一文件中对应的存储区域,如果所述获取的存储区域包括的数据区域中存在所述数据页,则获取所述获取的存储区域包括的指针区域内存在的副本指针,将所述数据页存储到所述副本指针指向的第二存储区域包括的数据区域中,将所述数据页对应的新数据页存储在所述获取的存储区域包括的数据区域中。
所述方法还包括:
如果所述获取的存储区域包括的数据区域中存在数据指针,则获取所述获取的存储区域包括的指针区域内存在的副本指针,获取所述数据指针指向的一个存储区域和所述副本指针指向的第二存储区域,设置所述第二存储区域包括的数据指针指向所述一个存储区域,以及设置所述一个存储区域包括的副本指针指向所述第二存储区域。
所述将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,包括:
在所述数据页对应的第一存储区域包括的指针区域中获取副本指针;
根据所述获取的副本指针,在所述副本文件中获取所述数据页对应的第二存储区域;
将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
一种复制文件的装置,所述装置包括:
第一复制模块,用于对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应,所述第一存储区域包括数据区域和指针区域,所述第二存储区域包括数据区域和指针区域,所述第一存储区域包括的数据区域用于存储所述第一存储区域对应的数据页;
第一设置模块,用于在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;
第二复制模块,用于将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
所述装置还包括:
第一存储模块,用于如果修改所述副本文件的某数据页,则接收用于写入副本文件的请求消息以及所述数据页对应的新数据页,将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中。
所述装置还包括:
第一获取模块,用于在所述副本文件中获取所述数据页对应的第二存储区域包括的数据区域内存储的数据指针,根据所述获取的数据指针在所述源文件中获取所述数据页对应的第一存储区域,清空所述第一存储区域包括的指针区域内存储的副本指针。
所述装置还包括:
第二获取模块,用于如果修改所述源文件的某数据页,则接收用于写入源文件的请求消息以及所述数据页对应的新数据页,在所述源文件中的所述数据页对应的第一存储区域中读取所述数据页和副本指针,根据所述副本指针在所述副本文件中获取所述数据页对应的第二存储区域,将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,以及将所述数据页对应的新数据页存储在所述数据页对应的第一存储区域包括的数据区域中。
所述装置还包括:
第一清空模块,用于清空所述数据页对应的第一存储区域包括的指针区域中存储的副本指针。
所述装置还包括:
第三复制模块,用于接收需要复制的第一文件和用于复制所述第一文件的请求消息,对所述第一文件的文件结构进行复制得到第二文件的文件结构,所述第一文件包括一个或多个存储区域,所述第二文件包括一个或多个第二存储区域,所述第一文件包括的存储区域分别与所述第一文件包括的数据页一一对应,所述第二文件包括的第二存储区域分别与所述第一文件包括的数据页一一对应;
第二设置模块,用于扫描所述第一文件包括的数据页对应的存储区域,如果所述扫描的存储区域包括的指针区域为空,在所述扫描的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述扫描的存储区域;
第四复制模块,用于将所述第一文件包括的数据页分别复制到所述第二文件中对应的第二存储区域包括的数据区域中。
所述装置还包括:
第三设置模块,用于如果所述扫描的存储区域包括的指针区域中存储有副本指针,获取所述副本指针指向的第二存储区域,如果所述获取的副本指针指向的第二存储区域包括的指针区域为空,则在所述获取的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述获取的第二存储区域,如果所述获取的第二存储区域包括的指针区域存储有副本指针,则获取所述副本指针指向的第二存储区域。
所述装置还包括:
第四设置模块,用于如果修改所述第一文件的某数据页,则接收用于写入第一文件的请求消息以及所述数据页对应的新数据页,获取所述数据页在所述第一文件中对应的存储区域,如果所述获取的存储区域包括的数据区域中存在所述数据页,则获取所述获取的存储区域包括的指针区域内存在的副本指针,将所述数据页存储到所述副本指针指向的第二存储区域包括的数据区域中,将所述数据页对应的新数据页存储在所述获取的存储区域包括的数据区域中。
所述装置还包括:
第五设置模块,用于如果所述获取的存储区域包括的数据区域中存在数据指针,则获取所述获取的存储区域包括的指针区域内存在的副本指针,获取所述数据指针指向的一个存储区域和所述副本指针指向的第二存储区域,设置所述第二存储区域包括的数据指针指向所述一个存储区域,以及设置所述一个存储区域包括的副本指针指向所述第二存储区域。
所述第二复制模块包括:
第一获取单元,用于在所述数据页对应的第一存储区域包括的指针区域中获取副本指针;
第二获取单元,用于根据所述获取的副本指针,在所述副本文件中获取所述数据页对应的第二存储区域;
复制单元,用于将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
在本发明实施例中,对源文件的文件结构进行复制得到副本文件的文件结构,在该数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域,此时可以根据副本文件中存储的数据指针来读写副本文件,从而减少用户等待复制副本文件的时间,另外,将源文件包括的数据页复制到该数据页对应的第二存储区域包括的数据区域中,如此当源文件和副本文件存储在不同的存储介质中,移走源文件所在的存储介质时,副本文件还可用。
附图说明
图1是本发明实施例提供的一种复制文件的方法流程图;
图2是本发明另一实施例提供的一种复制文件的方法流程图;
图3是本发明实施例提供的一种操作系统示意图;
图4是本发明实施例提供的一种源文件结构示意图;
图5是本发明实施例提供的一种源文件和副本文件的第一结构示意图;
图6是本发明实施例提供的一种源文件和副本文件的第二结构示意图;
图7是本发明实施例提供的一种源文件和副本文件的第三结构示意图;
图8是本发明实施例提供的一种源文件和副本文件的第四结构示意图;
图9是本发明另一实施例提供的一种复制文件的方法流程图;
图10是本发明实施例提供的一种第一文件和第二文件的第一结构示意图;
图11是本发明实施例提供的一种第一文件和第二文件的第二结构示意图;
图12是本发明实施例提供的一种第一文件和第二文件的第三结构示意图;
图13是本发明实施例提供的一种第一文件和第二文件的第一结构示意图
图14是本发明实施例提供的一种复制文件的装置的第一结构示意图;
图15是本发明实施例提供的一种复制文件的装置的第二结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图1,本发明实施例提供了一种复制文件的方法,包括:
步骤101:对源文件的文件结构进行复制得到副本文件的文件结构,源文件的文件结构包括第一存储区域,副本文件的文件结构包括第二存储区域,第一存储区域和第二存储区域分别与源文件包括的数据页一一对应,第一存储区域包括数据区域和指针区域,第二存储区域包括数据区域和指针区域,第一存储区域包括的数据区域用于存储第一存储区域对应的数据页;
步骤102:在该数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域;
步骤103:将源文件包括的数据页复制到该数据页对应的第二存储区域包括的数据区域中。
在本发明实施例中,对源文件的文件结构进行复制得到副本文件的文件结构,在该数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域,此时可以根据副本文件中存储的数据指针来读写副本文件,从而减少用户等待复制副本文件的时间,另外,将源文件包括的数据页复制到该数据页对应的第二存储区域包括的数据区域中,如此当源文件和副本文件存储在不同的存储介质中,移走源文件所在的存储介质时,副本文件还可用。
本发明实施例提供了一种复制文件的方法。其中,在本发明实施例中,需要对源文件复制得到一个副本文件,参见图2,该方法包括:
步骤201:接收需要复制的源文件和用于复制源文件的请求消息;
其中,参见图3,位于应用层的应用程序需要对某源文件进行复制时,应用程序将需要复制的源文件和用于复制源文件的请求消息通过终端的操作系统子系统和I/O(Input/Output,输入输出端口)子系统管理器提交给文件系统驱动模块。
其中,文件系统驱动模块接收该源文件和用于复制源文件的请求消息,然后可以执行如下201至207的步骤。
其中,在本发明实施例中,源文件包括一个或多个数据页,源文件的文件结构包一个或多个第一存储区域,第一存储区域与源文件包括的数据页一一对应,第一存储区域包括数据区域和指针区域,第一存储区域包括的数据区域用于存储其自身对应的数据页。
其中,第一存储区域包括的数据区域的大小大于或等于第一存储区域对应的数据页的大小,第一存储区域包括的指针区域的大于小于其自身包括的数据区域的大小。
例如,参见图4,源文件包括数据页1、2、3、4和5,源文件的文件结构包括数据页1对应的第一存储区域a1,数据页2对应的第一存储区域a2,数据页3对应的第一存储区域a3,数据页4对应的第一存储区域a4,以及数据页5对应的第一存储区域a5,数据页1存储在其对应的第一存储区域a1包括的数据区域内,数据页2存储在其对应的第一存储区域a2包括的数据区域内,数据页3存储在其对应的第一存储区域a3包括的数据区域内,数据页4存储在其对应的第一存储区域a4包括的数据区域内,以及数据页5存储在其对应的第一存储区域a5;其中,第一存储区域a1、a2、a3、a4和a5各自包括的指针区域都为空。
步骤202:对源文件的文件结构进行复制得到副本文件的文件结构;
其中,对源文件的文件结构进行复制得到副本文件的文件结构,副本文件的文件结构包括第二存储区域,源文件包括的第一存储区域与副本文件包括的第二存储区域一一对应,副本文件包括的第二存储区域与源文件包括的数据页一一对应,第二存储区域包括数据区域和指针区域。
例如,对如图4所示的源文件的文件结构进行复制得到如图5所示的副本文件的文件结构,副本文件的文件结构包括第二存储区域b1、b2、b3、b4和b5,源文件包括的第一存储区域a1、a2、a3、a4和a5分别与第二存储区域b1、b2、b3、b4和b5一一对应,第二存储区域b1、b2、b3、b4和b5分别与源文件包括的数据页1、2、3、4和5一一对应。
步骤203:在源文件包括的数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域;
例如,参见图5,对于源文件包括的数据页1,在数据页1对应的第一存储区域a1包括的指针区域中设置副本指针1,副本指针1用于指向数据页1对应的第二存储区域b1,在数据页1对应的第二存储区域b1包括的数据区域中设置数据指针1,数据指针1用于指向数据页1对应的第一存储区域a1;对于数据页2、3、4和5,分别按上述相同的过程来执行。
其中,在执行本步骤之后,就可以对副本文件中包括的数据页进行读取和写入。
其中,当用户或应用程序需要读取副本文件包括的某数据页时,用户或应用程序提交需要读取的数据页的标识和用于读取副本文件的请求消息给文件系统驱动模块,文件系统驱动模块接收该数据页的标识和用于读取副本文件的请求消息,然后执行如下步骤204:
步骤204:接收需要读取的数据页的标识和用于读取副本文件的请求消息,根据该数据页的标识在副本文件中获取对应的数据页;
具体地,接收需要读取的数据页的标识和用于读取副本文件的请求消息,根据该数据页的标识获取该数据页在副本文件中对应的第二存储区域,在该第二存储区域包括的数据区域中获取该数据页对应的数据指针,根据该数据指针从源文件中获取该数据页对应的第一存储区域,在该数据页对应的第一存储区域包括的数据区域中获取该数据页。
例如,假设需要读取副本文件的数据页1,获取数据页1对应的第二存储区域b1,在第二存储区域b1包括的数据区域中获取数据页1对应的数据指针1,根据数据指针1,从源文件中获取数据页1对应的第一存储区域a1,在第一存储区域a1包括的数据区域中获取数据页1。
其中,当用户或应用程序需要修改副本文件包括的某数据页时,用户或应用程序提交需要修改的该数据页对应的新数据页和用于写入副本文件的请求消息给文件系统驱动模块,文件系统驱动模块接收该数据页对应的新数据和用于写入副本文件的请求消息,然后执行如下步骤205:
步骤205:接收用于写入副本文件的请求消息以及该数据页对应的新数据页,将该数据页对应的新数据页存储在该数据页对应的第二存储区域包括的数据区域中;
进一步地,在源文件中,清空该数据页对应的第一存储区域包括的指针区域中存储的副本指针。
例如,参见图6,当需要修改副本文件的数据页1时,数据页1对应的新数据页为新数据页1,在副本文件中将数据页1对应的新数据页1存储在副本文件的数据页1对应的第二存储区域b1包括的数据区域中;在源文件中,清空数据页1对应的第一存储区域a1包括的指针区域内存储的副本指针1。
其中,当用户或应用程序需要修改源文件包括的某数据页时,用户或应用程序提交需要修改的该数据页对应的新数据页和用于写入源文件的请求消息给文件系统驱动模块,文件系统驱动模块接收该数据页对应的新数据页和用于写入副本文件的请求消息,然后执行如下步骤206:
步骤206:接收用于写入源文件的请求消息以及数据页对应的新数据页,在源文件中的该数据页对应的第一存储区域中读取该数据页和副本指针,根据该副本指针在副本文件中获取该数据页对应的第二存储区域,将该数据页复制到其对应的第二存储区域包括的数据区域中,以及将该数据页对应的新数据页存储在该数据页对应的第一存储区域包括的数据区域中;
进一步地,在源文件中清空该数据页对应的第一存储区域包括的指针区域内存储的副本指针。
例如,参见图7,当需要修改源文件的数据页2时,数据页2对应的新数据页为新数据页2,在源文件中的数据页2对应的第一存储区域a2中读取数据页2和副本指针2,根据副本指针2在副本文件中获取数据页2对应的第二存储区域b2,将数据页2复制到数据页2对应的第二存储区域b2包括的数据区域中,将数据页2对应的新数据页2存储在第一存储区域a2包括的数据区域中,并清空第一存储区域a2包括的指针区域内存的副本指针。
其中,当执行完步骤204之后,可以通过207的步骤将源文件包括的数据页分别复制到副本文件包括的第二存储区域中,包括:
步骤207:将源文件包括的数据页复制到副本文件内该数据页对应的第二存储区域包括的数据区域中。
具体地,从数据页所在的第一存储区域包括的指针区域中读取该数据页对应的副本指针,根据该副本指针获取该数据页对应的第二存储区域,将该数据页从源文件复制到该数据页对应的第二存储区域包括的数据区域中。
进一步地,将该数据页复制到该数据页对应的第二存储区域包括的数据区域中后,可以清空该数据页对应的第一存储区域包括的指针区域内存储的副本指针。
例如,参见图8,对于源文件包括的数据页3,从数据页3对应的第一存储区域a3包括的指针区域中读取数据页3对应的副本指针3,根据副本指针3获取数据页3对应的第二存储区域b3,将数据页3从源文件中复制到第二存储区域b3包括的数据区域中,清空第一存储区域a3包括的指针区域内存储的副本指针3;对于源文件包括的数据页4,从数据页4对应的第一存储区域a4包括的指针区域中读取数据页4对应的副本指针4,根据副本指针4获取数据页4对应的第二存储区域b4,将数据页4从源文件中复制到第二存储区域b4包括的数据区域中,清空第一存储区域a4包括的指针区域内存储的副本指针4;以及,对于源文件包括的数据页5,从数据页5对应的第一存储区域a5包括的指针区域中读取数据页5对应的副本指针5,根据副本指针5获取数据页5对应的第二存储区域b5,将数据页5从源文件中复制到第二存储区域b5包括的数据区域中,清空第一存储区域a5包括的指针区域内存储的副本指针5。
在本发明实施例中,对源文件的文件结构进行复制得到副本文件的文件结构,在该数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域,此时可以根据副本文件中存储的数据指针来读写副本文件,从而减少用户等待复制副本文件的时间,另外,将源文件包括的数据页复制到该数据页对应的第二存储区域包括的数据区域中,如此当源文件和副本文件存储在不同的存储介质中,移走源文件所在的存储介质时,副本文件还可用。
本发明实施例提供了一种复制文件的方法。其中,在本发明实施例中,当通过图2所示的实施例对源文件进行复制后得到副本文件,然后可以通过本发明实施例提供的方法来对源文件或副本文件进行复制,参见图9,该方法包括:
步骤301:接收需要复制的第一文件和用于复制第一文件的请求消息,第一文件可以为源文件或副本文件;
其中,参见图3,位于应用层的应用程序需要对第一文件进行复制时,应用程序将需要复制的第一文件和用于复制第一文件的请求消息通过终端的操作系统子系统和I/O子系统管理器提交给文件系统驱动模块。
其中,文件系统驱动模块接收第一文件和用于复制第一文件的请求消息,然后可以执行如下301至309的步骤。
其中,在本发明实施例中,第一文件包括一个或多个数据页,第一文件的文件结构包一个或多个存储区域,第一文件包括的存储区域与第一文件包括的数据页一一对应,该存储区域包括数据区域和指针区域,该存储区域包括的数据区域用于存储其自身对应的数据页。
其中,存储区域包括的数据区域的大小大于或等于存储区域对应的数据页的大小,存储区域包括的指针区域的大于小于其自身包括的数据区域的大小。
例如,参见图10,当需要对如图5所示的副本文件进行复制,该副本文件为第一文件,第一文件包括数据页1、2、3、4和5,第一文件的文件结构包括数据页1对应的存储区域b1,数据页2对应的存储区域b2,数据页3对应的存储区域b3,数据页4对应的存储区域b4,以及数据页5对应的存储区域b5,数据页1存储在其对应的存储区域b1包括的数据区域内,数据页2存储在其对应的存储区域b2包括的数据区域内,数据页3存储在其对应的存储区域b3包括的数据区域内,数据页4存储在其对应的存储区域b4包括的数据区域内,以及数据页5存储在其对应的存储区域b5;其中,存储区域a1、a2、a3、a4和a5各自包括的指针区域都为空。
步骤302:对第一文件的文件结构进行复制得到第二文件的文件结构;
其中,对第一文件的文件结构进行复制得到第二文件的文件结构,第二文件的文件结构包括第二存储区域,第一文件包括的存储区域分别与第二文件包括的第二存储区域一一对应,第二文件包括的第二存储区域分别与第一文件包括的数据页一一对应。
例如,对第一文件的文件结构进行复制得到如图10所示的第二文件的文件结构,第二文件的文件结构包括包括第二存储区域c1、c2、c3、c4和c5,第一文件包括的存储区域b1、b2、b3、b4和b5分别与第二文件包括的第二存储区域c1、c2、c3、c4和c5一一对应,第二文件包括的第二存储区域c1、c2、c3、c4和c5分别与第一文件包括的数据页1、2、3、4和5一一对应。
步骤303:扫描第一文件包括的数据页对应的存储区域,判断扫描的存储区域包括的指针区域是否为空,如果为空,则执行步骤304,如果不为空,则扫描的存储区域包括的指针区域存储有副本指针,执行步骤305
步骤304:在扫描的存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页在第二文件中对应的第二存储区域,在该数据页在第一文件中对应的存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页在第一文件中对应的存储区域,执行步骤309;
例如,扫描第一文件包括的数据页1对应的存储区域b1,判断扫描的存储区域b1包括的指针区域为空,在扫描的存储区域b1包括的指针区域中设置副本指针21,副本指针21用于指向数据页1在第二文件中对应的第二存储区域c1,在数据页1在第二文件中对应的第二存储区域c1包括的数据区域中设置数据指针21,数据指针21用于指向数据页1在第一文件中对应的存储区域b1。
步骤305:获取扫描的存储区域包括的指针区域存储的副本指针指向的第二存储区域;
步骤306:判断获取的第二存储区域包括的指针区域是否为空,如果是,则执行步骤307,如果否,则获取的第二存储区域包括的指针区域中存储有副本指针,执行步骤308;
步骤307:在获取的第二存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页在第二文件中对应的第二存储区域,在该数据页在第二文件中对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向获取的第二存储区域,执行步骤309;
步骤308:获取获取的第二存储区域包括的指针区域存储的副本指针指向的第二存储区域,返回步骤306;
进一步地,如果第一文件中还存在未扫描的数据页对应的存储区域,则扫描下一个数据页对应的存储区域,并从上述步骤303开始执行。例如,继续扫描第一文件包括的数据页2、3、4和5,并对数据页2、3、4和5分别执行上述步骤303至308的步骤,得到结果如表10所示。
其中,当执行完步骤304之后,可以通过309的步骤将第一文件包括的数据页分别复制到第二文件包括的第二存储区域中,包括:
步骤309:将第一文件包括的数据页复制到第二文件内该数据页对应的第二存储区域包括的数据区域中。
具体地,本步骤可以通过如下(A)-(D)的步骤来实现,包括:
(A):扫描第二文件包括的数据页对应的第二存储区域,获取扫描的第二存储区域包括的数据区域内存储的数据指针,获取该数据指针指向的存储区域;
(B):对该存储区域包括的数据区域进行判断,如果该存储区域包括的数据区域存储有数据指针,则执行(C),如果该存储区域包括的数据区域存储有数据页,则执行(D);
(C):获取该数据指针指向的存储区域包括的数据区域存储的数据指针,获取该数据指针指向的存储区域,返回执行(B);
(D):将该数据页复制到扫描的第二存储区域包括的数据区域中,清空该数据区域包括的指针区域存储的副本指针。
其中,如果第二文件还存在未扫描的数据页对应的第二存储区域,扫描下一个数据页对应的第二存储区域,然后从上述步骤(A)开始执行。
其中,当扫描完第一文件包括的数据页时,可以修改第一文件中的某数据页。
进一步地,如果修改第一文件的某数据页,则接收用于写入第一文件的请求消息以及该数据页对应的新数据页,获取该数据页在第一文件中对应的存储区域,如果获取的存储区域包括的数据区域中存在该数据页,则获取获取的存储区域包括的指针区域内存在的副本指针,将该数据页存储到该副本指针指向的第二存储区域包括的数据区域中,将该数据页对应的新数据页存储在获取的存储区域包括的数据区域中。
进一步地,如果获取的存储区域包括的数据区域中存在数据指针,则获取获取的存储区域包括的指针区域内存在的副本指针,获取该数据指针指向的一个存储区域和该副本指针指向的第二存储区域,设置该第二存储区域包括的数据指针指向该数据指针指向的一个存储区域,以及设置该数据指针指向的一个存储区域包括的副本指针指向第二存储区域,将该数据页对应的新数据存储在该数据页在第一文件对应的存储区域包括的数据区域中。
例如,参见图11,如果修改第一文件包括的数据页1,接收用于写入第一文件的请求消息以及数据页1对应的新数据页1,获取数据页1在第一文件中对应的存储区域b1,判断获取的存储区域b1包括的数据区域中存在数据指针11,则获取存储区域b1包括的指针区域内存在的副本指针21,获取数据指针11指向的一个存储区域a1和副本指针21指向的第二存储区域c1,设置第二存储区域c1包括的数据指针指向存储区域a1,以及设置存储区域a1包括的副本指针指向第二存储区域c1,将数据页1对应的新数据页1存储在数据页1在第一文件对应的存储区域b1包括的数据区域中。
其中,当用户或应用程序需要读取第二文件包括的某数据页时,用户或应用程序提交需要读取的数据页的标识和用于读取第二文件的请求消息给文件系统驱动模块,文件系统驱动模块执行如下步骤(1)至(4),分别为:
(1):接收需要读取的数据页的标识和用于读取第二文件的请求消息,根据该数据页的标识获取该数据页在第二文件中对应的第二存储区域;
(2):在获取的第二存储区域包括的数据区域中获取该数据页对应的数据指针,判断该数据指针指向的存储区域;
(3):如果该数据指针指向的存储区域为副本文件的第二存储区域时,则获取该数据指针指向的第二存储区域,返回(2);
(4):如果该数据指针指向的存储区域为源文件的第一存储区域,则从数据指针指向的第一存储区域中获取该数据页。
其中,当用户或应用程序需要修改第二文件包括的某数据页时,用户或应用程序提交需要修改的该数据页对应的新数据页和用于写入第二文件的请求消息给文件系统驱动模块,文件系统驱动模块接收该数据页对应的新数据页和用于写入第二文件的请求消息,然后执行如下步骤:
进一步地,接收用于写入第二文件的请求消息以及该数据页对应的新数据页,将该数据页对应的新数据页存储在该数据页在第二文件中对应的第二存储区域包括的数据区域中;
具体地,接收用于写入第二文件的请求消息以及该数据页对应的新数据页,获取该数据页在第二文件中的第二存储区域,从获取的第二存储区域包括的数据区域中获取数据指针,获取该数据指针指向的一个存储区域,将该一个存储区域包括的指针区域内存储的副本指针清空,将该数据页对应的新数据存储在获取的第二存储区域包括的数据区域中。
例如,参见图12,当需要修改第二文件的数据页2时,数据页2对应的新数据页为新数据页2,在第二文件中获取数据页2对应的第二存储区域c2,获取第二存储区域c2包括的数据指针22,获取该数据指针22指向的存储区域b2,清空存储区域b2包括的指针区域内存储的副本指针,以及将数据页2对应的新数据页2存储在第二文件中的数据页2对应的第二存储区域b2包括的数据区域中。
其中,当用户或应用程序需要修改源文件包括的某数据页时,用户或应用程序提交需要该数据页对应的新数据页和用于写入源文件的请求消息给文件系统驱动模块,文件系统驱动模块接收该数据页对应的新数据和用于写入源文件的请求消息,然后执行如下步骤:
进一步地,接收用于写入源文件的请求消息以及该数据页对应的新数据页,获取该数据页在源文件中对应的第一存储区域包括的指针区域内存储的副本指针,根据获取的副本指针获取其指向的第二存储区域,将该数据页复制到该第二存储区域包括的数据区域中,以及清空该第一存储区域包括的指针区域内存储的副本指针。
例如,参见图13,当需要修改源文件的数据页3时,数据页3对应的新数据页为新数据页3,在源文件中的数据页3对应的第一存储区域a3包括的数据区域中读取数据页3和副本指针13,根据副本指针13获取指向的在第一文件中对应的存储区域b3,将数据页3复制到数据页3对应的存储区域b3包括的数据区域中,将数据页3对应的新数据页3存储在第一存储区域a3包括的数据区域中,并清空第一存储区域a3包括的指针区域内存储的副本指针。
在本发明实施例中,对源文件的文件结构进行复制得到副本文件的文件结构,在该数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域,此时可以根据副本文件中存储的数据指针来读写副本文件,从而减少用户等待复制副本文件的时间,另外,将源文件包括的数据页复制到该数据页对应的第二存储区域包括的数据区域中,如此当源文件和副本文件存储在不同的存储介质中,移走源文件所在的存储介质时,副本文件还可用。
参见图13,本发明实施例提供了一种复制文件的装置,装置包括:
第一复制模块401,用于对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应,所述第一存储区域包括数据区域和指针区域,所述第二存储区域包括数据区域和指针区域,所述第一存储区域包括的数据区域用于存储所述第一存储区域对应的数据页;
第一设置模块402,用于在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;
第二复制模块403,用于将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
进一步地,所述装置还包括:
第一存储模块,用于如果修改所述副本文件的某数据页,则接收用于写入副本文件的请求消息以及所述数据页对应的新数据页,将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中。
进一步地,所述装置还包括:
第一获取模块,用于在所述副本文件中获取所述数据页对应的第二存储区域包括的数据区域内存储的数据指针,根据所述获取的数据指针在所述源文件中获取所述数据页对应的第一存储区域,清空所述第一存储区域包括的指针区域内存储的副本指针。
进一步地,所述装置还包括:
第二获取模块,用于如果修改所述源文件的某数据页,则接收用于写入源文件的请求消息以及所述数据页对应的新数据页,在所述源文件中的所述数据页对应的第一存储区域中读取所述数据页和副本指针,根据所述副本指针在所述副本文件中获取所述数据页对应的第二存储区域,将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,以及将所述数据页对应的新数据页存储在所述数据页对应的第一存储区域包括的数据区域中。
进一步地,所述装置还包括:
第一清空模块,用于清空所述数据页对应的第一存储区域包括的指针区域中存储的副本指针。
进一步地,所述装置还包括:
第三复制模块,用于接收需要复制的第一文件和用于复制所述第一文件的请求消息,对所述第一文件的文件结构进行复制得到第二文件的文件结构,所述第一文件包括一个或多个存储区域,所述第二文件包括一个或多个第二存储区域,所述第一文件包括的存储区域分别与所述第一文件包括的数据页一一对应,所述第二文件包括的第二存储区域分别与所述第一文件包括的数据页一一对应;
第二设置模块,用于扫描所述第一文件包括的数据页对应的存储区域,如果所述扫描的存储区域包括的指针区域为空,在所述扫描的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述扫描的存储区域;
第四复制模块,用于将所述第一文件包括的数据页分别复制到所述第二文件中对应的第二存储区域包括的数据区域中。
进一步地,所述装置还包括:
第三设置模块,用于如果所述扫描的存储区域包括的指针区域中存储有副本指针,获取所述副本指针指向的第二存储区域,如果所述获取的副本指针指向的第二存储区域包括的指针区域为空,则在所述获取的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述获取的第二存储区域,如果所述获取的第二存储区域包括的指针区域存储有副本指针,则获取所述副本指针指向的第二存储区域。
进一步地,所述装置还包括:
第四设置模块,用于如果修改所述第一文件的某数据页,则接收用于写入第一文件的请求消息以及所述数据页对应的新数据页,获取所述数据页在所述第一文件中对应的存储区域,如果所述获取的存储区域包括的数据区域中存在所述数据页,则获取所述获取的存储区域包括的指针区域内存在的副本指针,将所述数据页存储到所述副本指针指向的第二存储区域包括的数据区域中,将所述数据页对应的新数据页存储在所述获取的存储区域包括的数据区域中。
进一步地,所述装置还包括:
第五设置模块,用于如果所述获取的存储区域包括的数据区域中存在数据指针,则获取所述获取的存储区域包括的指针区域内存在的副本指针,获取所述数据指针指向的一个存储区域和所述副本指针指向的第二存储区域,设置所述第二存储区域包括的数据指针指向所述一个存储区域,以及设置所述一个存储区域包括的副本指针指向所述第二存储区域。
其中,所述第二复制模块403包括:
第一获取单元,用于在所述数据页对应的第一存储区域包括的指针区域中获取副本指针;
第二获取单元,用于根据所述获取的副本指针,在所述副本文件中获取所述数据页对应的第二存储区域;
复制单元,用于将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
在本发明实施例中,对源文件的文件结构进行复制得到副本文件的文件结构,在该数据页对应的第一存储区域包括的指针区域中设置副本指针,该副本指针用于指向该数据页对应的第二存储区域,在该数据页对应的第二存储区域包括的数据区域中设置数据指针,该数据指针用于指向该数据页对应的第一存储区域,此时可以根据副本文件中存储的数据指针来读写副本文件,从而减少用户等待复制副本文件的时间,另外,将源文件包括的数据页复制到该数据页对应的第二存储区域包括的数据区域中,如此当源文件和副本文件存储在不同的存储介质中,移走源文件所在的存储介质时,副本文件还可用。
参见图14,本发明实施例提供了一种复制文件的装置,装置包括:
存储器501和处理器502,用于执行如下的一种复制文件的方法:
对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应,所述第一存储区域包括数据区域和指针区域,所述第二存储区域包括数据区域和指针区域,所述第一存储区域包括的数据区域用于存储所述第一存储区域对应的数据页;
在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;
将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
所述在所述数据页对应的第二存储区域包括的数据区域中设置数据指针之后,还包括:
如果修改所述副本文件的某数据页,则接收用于写入副本文件的请求消息以及所述数据页对应的新数据页,将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中。
所述将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中之前,还包括:
在所述副本文件中获取所述数据页对应的第二存储区域包括的数据区域内存储的数据指针,根据所述获取的数据指针在所述源文件中获取所述数据页对应的第一存储区域,清空所述第一存储区域包括的指针区域内存储的副本指针。
所述在所述数据页对应的第二存储区域包括的数据区域中设置数据指针之后,还包括:
如果修改所述源文件的某数据页,则接收用于写入源文件的请求消息以及所述数据页对应的新数据页,在所述源文件中的所述数据页对应的第一存储区域中读取所述数据页和副本指针,根据所述副本指针在所述副本文件中获取所述数据页对应的第二存储区域,将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,以及将所述数据页对应的新数据页存储在所述数据页对应的第一存储区域包括的数据区域中。
所述将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中之后,还包括:
清空所述数据页对应的第一存储区域包括的指针区域中存储的副本指针。
所述方法还包括:
接收需要复制的第一文件和用于复制所述第一文件的请求消息,对所述第一文件的文件结构进行复制得到第二文件的文件结构,所述第一文件包括一个或多个存储区域,所述第二文件包括一个或多个第二存储区域,所述第一文件包括的存储区域分别与所述第一文件包括的数据页一一对应,所述第二文件包括的第二存储区域分别与所述第一文件包括的数据页一一对应;
扫描所述第一文件包括的数据页对应的存储区域,如果所述扫描的存储区域包括的指针区域为空,在所述扫描的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述扫描的存储区域;
将所述第一文件包括的数据页分别复制到所述第二文件中对应的第二存储区域包括的数据区域中。
所述方法还包括:
如果所述扫描的存储区域包括的指针区域中存储有副本指针,获取所述副本指针指向的第二存储区域,如果所述获取的副本指针指向的第二存储区域包括的指针区域为空,则在所述获取的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述获取的第二存储区域,如果所述获取的第二存储区域包括的指针区域存储有副本指针,则获取所述副本指针指向的第二存储区域。
所述在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针之后,还包括:
如果修改所述第一文件的某数据页,则接收用于写入第一文件的请求消息以及所述数据页对应的新数据页,获取所述数据页在所述第一文件中对应的存储区域,如果所述获取的存储区域包括的数据区域中存在所述数据页,则获取所述获取的存储区域包括的指针区域内存在的副本指针,将所述数据页存储到所述副本指针指向的第二存储区域包括的数据区域中,将所述数据页对应的新数据页存储在所述获取的存储区域包括的数据区域中。
所述方法还包括:
如果所述获取的存储区域包括的数据区域中存在数据指针,则获取所述获取的存储区域包括的指针区域内存在的副本指针,获取所述数据指针指向的一个存储区域和所述副本指针指向的第二存储区域,设置所述第二存储区域包括的数据指针指向所述一个存储区域,以及设置所述一个存储区域包括的副本指针指向所述第二存储区域。
所述将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,包括:
在所述数据页对应的第一存储区域包括的指针区域中获取副本指针;
根据所述获取的副本指针,在所述副本文件中获取所述数据页对应的第二存储区域;
将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种复制文件的方法,其特征在于,所述方法包括:
对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应,所述第一存储区域包括数据区域和指针区域,所述第二存储区域包括数据区域和指针区域,所述第一存储区域包括的数据区域用于存储所述第一存储区域对应的数据页;
在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;
将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
2.如权利要求1所述的方法,其特征在于,所述在所述数据页对应的第二存储区域包括的数据区域中设置数据指针之后,还包括:
如果修改所述副本文件的某数据页,则接收用于写入副本文件的请求消息以及所述数据页对应的新数据页,将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中。
3.如权利要求2所述的方法,其特征在于,所述将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中之前,还包括:
在所述副本文件中获取所述数据页对应的第二存储区域包括的数据区域内存储的数据指针,根据所述获取的数据指针在所述源文件中获取所述数据页对应的第一存储区域,清空所述第一存储区域包括的指针区域内存储的副本指针。
4.如权利要求1至3任一项权利要求所述的方法,其特征在于,所述在所述数据页对应的第二存储区域包括的数据区域中设置数据指针之后,还包括:
如果修改所述源文件的某数据页,则接收用于写入源文件的请求消息以及所述数据页对应的新数据页,在所述源文件中的所述数据页对应的第一存储区域中读取所述数据页和副本指针,根据所述副本指针在所述副本文件中获取所述数据页对应的第二存储区域,将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,以及将所述数据页对应的新数据页存储在所述数据页对应的第一存储区域包括的数据区域中。
5.如权利要求1至4任一项权利要求所述的方法,其特征在于,所述将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中之后,还包括:
清空所述数据页对应的第一存储区域包括的指针区域中存储的副本指针。
6.如权利要求1至5任一项权利要求所述的方法,其特征在于,所述方法还包括:
接收需要复制的第一文件和用于复制所述第一文件的请求消息,对所述第一文件的文件结构进行复制得到第二文件的文件结构,所述第一文件包括一个或多个存储区域,所述第二文件包括一个或多个第二存储区域,所述第一文件包括的存储区域分别与所述第一文件包括的数据页一一对应,所述第二文件包括的第二存储区域分别与所述第一文件包括的数据页一一对应;
扫描所述第一文件包括的数据页对应的存储区域,如果所述扫描的存储区域包括的指针区域为空,在所述扫描的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述扫描的存储区域;
将所述第一文件包括的数据页分别复制到所述第二文件中对应的第二存储区域包括的数据区域中。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述扫描的存储区域包括的指针区域中存储有副本指针,获取所述副本指针指向的第二存储区域,如果所述获取的副本指针指向的第二存储区域包括的指针区域为空,则在所述获取的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述获取的第二存储区域,如果所述获取的第二存储区域包括的指针区域存储有副本指针,则获取所述副本指针指向的第二存储区域。
8.如权利要求6所述的方法,其特征在于,所述在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针之后,还包括:
如果修改所述第一文件的某数据页,则接收用于写入第一文件的请求消息以及所述数据页对应的新数据页,获取所述数据页在所述第一文件中对应的存储区域,如果所述获取的存储区域包括的数据区域中存在所述数据页,则获取所述获取的存储区域包括的指针区域内存在的副本指针,将所述数据页存储到所述副本指针指向的第二存储区域包括的数据区域中,将所述数据页对应的新数据页存储在所述获取的存储区域包括的数据区域中。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
如果所述获取的存储区域包括的数据区域中存在数据指针,则获取所述获取的存储区域包括的指针区域内存在的副本指针,获取所述数据指针指向的一个存储区域和所述副本指针指向的第二存储区域,设置所述第二存储区域包括的数据指针指向所述一个存储区域,以及设置所述一个存储区域包括的副本指针指向所述第二存储区域。
10.如权利要求1至9任一项权利要求所述的方法,其特征在于,所述将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,包括:
在所述数据页对应的第一存储区域包括的指针区域中获取副本指针;
根据所述获取的副本指针,在所述副本文件中获取所述数据页对应的第二存储区域;
将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
11.一种复制文件的装置,其特征在于,所述装置包括:
第一复制模块,用于对所述源文件的文件结构进行复制得到副本文件的文件结构,所述源文件的文件结构包括第一存储区域,所述副本文件的文件结构包括第二存储区域,所述第一存储区域和所述第二存储区域分别与所述源文件包括的数据页一一对应,所述第一存储区域包括数据区域和指针区域,所述第二存储区域包括数据区域和指针区域,所述第一存储区域包括的数据区域用于存储所述第一存储区域对应的数据页;
第一设置模块,用于在所述数据页对应的第一存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页对应的第二存储区域,在所述数据页对应的第二存储区域包括的数据区域中设置数据指针,所述数据指针用于指向所述数据页对应的第一存储区域;
第二复制模块,用于将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
12.如权利要求11所述的装置,其特征在于,所述装置还包括:
第一存储模块,用于如果修改所述副本文件的某数据页,则接收用于写入副本文件的请求消息以及所述数据页对应的新数据页,将所述数据页对应的新数据页存储在所述数据页对应的第二存储区域包括的数据区域中。
13.如权利要求12所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于在所述副本文件中获取所述数据页对应的第二存储区域包括的数据区域内存储的数据指针,根据所述获取的数据指针在所述源文件中获取所述数据页对应的第一存储区域,清空所述第一存储区域包括的指针区域内存储的副本指针。
14.如权利要求11至13任一项权利要求所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于如果修改所述源文件的某数据页,则接收用于写入源文件的请求消息以及所述数据页对应的新数据页,在所述源文件中的所述数据页对应的第一存储区域中读取所述数据页和副本指针,根据所述副本指针在所述副本文件中获取所述数据页对应的第二存储区域,将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中,以及将所述数据页对应的新数据页存储在所述数据页对应的第一存储区域包括的数据区域中。
15.如权利要求14至14任一项权利要求所述的装置,其特征在于,所述装置还包括:
第一清空模块,用于清空所述数据页对应的第一存储区域包括的指针区域中存储的副本指针。
16.如权利要求11至15任一项权利要求所述的装置,其特征在于,所述装置还包括:
第三复制模块,用于接收需要复制的第一文件和用于复制所述第一文件的请求消息,对所述第一文件的文件结构进行复制得到第二文件的文件结构,所述第一文件包括一个或多个存储区域,所述第二文件包括一个或多个第二存储区域,所述第一文件包括的存储区域分别与所述第一文件包括的数据页一一对应,所述第二文件包括的第二存储区域分别与所述第一文件包括的数据页一一对应;
第二设置模块,用于扫描所述第一文件包括的数据页对应的存储区域,如果所述扫描的存储区域包括的指针区域为空,在所述扫描的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述扫描的存储区域;
第四复制模块,用于将所述第一文件包括的数据页分别复制到所述第二文件中对应的第二存储区域包括的数据区域中。
17.如权利要求16所述的装置,其特征在于,所述装置还包括:
第三设置模块,用于如果所述扫描的存储区域包括的指针区域中存储有副本指针,获取所述副本指针指向的第二存储区域,如果所述获取的副本指针指向的第二存储区域包括的指针区域为空,则在所述获取的存储区域包括的指针区域中设置副本指针,所述副本指针用于指向所述数据页在所述第二文件中对应的第二存储区域,在所述数据页在所述第二文件中对应的第二存储区域包括的数据区域设置数据指针,所述数据指针用于指向所述获取的第二存储区域,如果所述获取的第二存储区域包括的指针区域存储有副本指针,则获取所述副本指针指向的第二存储区域。
18.如权利要求16所述的装置,其特征在于,所述装置还包括:
第四设置模块,用于如果修改所述第一文件的某数据页,则接收用于写入第一文件的请求消息以及所述数据页对应的新数据页,获取所述数据页在所述第一文件中对应的存储区域,如果所述获取的存储区域包括的数据区域中存在所述数据页,则获取所述获取的存储区域包括的指针区域内存在的副本指针,将所述数据页存储到所述副本指针指向的第二存储区域包括的数据区域中,将所述数据页对应的新数据页存储在所述获取的存储区域包括的数据区域中。
19.如权利要求18所述的装置,其特征在于,所述装置还包括:
第五设置模块,用于如果所述获取的存储区域包括的数据区域中存在数据指针,则获取所述获取的存储区域包括的指针区域内存在的副本指针,获取所述数据指针指向的一个存储区域和所述副本指针指向的第二存储区域,设置所述第二存储区域包括的数据指针指向所述一个存储区域,以及设置所述一个存储区域包括的副本指针指向所述第二存储区域。
20.如权利要求11至19任一项权利要求所述的装置,其特征在于,所述第二复制模块包括:
第一获取单元,用于在所述数据页对应的第一存储区域包括的指针区域中获取副本指针;
第二获取单元,用于根据所述获取的副本指针,在所述副本文件中获取所述数据页对应的第二存储区域;
复制单元,用于将所述数据页复制到所述数据页对应的第二存储区域包括的数据区域中。
CN201210554933.6A 2012-12-19 2012-12-19 一种复制文件的方法及装置 Active CN103034587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210554933.6A CN103034587B (zh) 2012-12-19 2012-12-19 一种复制文件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210554933.6A CN103034587B (zh) 2012-12-19 2012-12-19 一种复制文件的方法及装置

Publications (2)

Publication Number Publication Date
CN103034587A true CN103034587A (zh) 2013-04-10
CN103034587B CN103034587B (zh) 2015-09-30

Family

ID=48021500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210554933.6A Active CN103034587B (zh) 2012-12-19 2012-12-19 一种复制文件的方法及装置

Country Status (1)

Country Link
CN (1) CN103034587B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101243430A (zh) * 2005-08-12 2008-08-13 微软公司 复制和更新文件
CN101739413A (zh) * 2008-11-27 2010-06-16 扬智科技股份有限公司 文件复制方法以及文件复制装置
US20120130949A1 (en) * 2010-11-22 2012-05-24 Bluearc Uk Limited File Cloning and De-Cloning in a Data Storage System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101243430A (zh) * 2005-08-12 2008-08-13 微软公司 复制和更新文件
CN101739413A (zh) * 2008-11-27 2010-06-16 扬智科技股份有限公司 文件复制方法以及文件复制装置
US20120130949A1 (en) * 2010-11-22 2012-05-24 Bluearc Uk Limited File Cloning and De-Cloning in a Data Storage System

Also Published As

Publication number Publication date
CN103034587B (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
US8327220B2 (en) Data storage device with verify on write command
US9626286B2 (en) Hardware and firmware paths for performing memory read processes
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
US20140136767A1 (en) Memory system having memory controller with cache memory and nvram and method of operating same
US20090198875A1 (en) Data writing method for flash memory, and controller and system using the same
CN109697016B (zh) 用于改进容器的存储性能的方法和装置
US10657048B2 (en) Garbage collection method for data storage device
US9558108B2 (en) Half block management for flash storage devices
TW201833777A (zh) 資料儲存裝置以及其操作方法
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
CN107632942A (zh) 一种固态硬盘实现lba级别trim命令的方法
US8898414B2 (en) Storage devices and methods of driving storage devices
CN102567244A (zh) 闪存和磁盘转换存取方法
CN114217987A (zh) 数据共享方法、设备、电子设备及存储介质
US9329994B2 (en) Memory system
US8935460B2 (en) Memory apparatus
CN103034587B (zh) 一种复制文件的方法及装置
WO2004075064A1 (ja) 記録媒体の記録制御方法及び記録制御装置
US20200319999A1 (en) Storage device, control method of storage device, and storage medium
CN108509295B (zh) 存储器系统的操作方法
CN102721419B (zh) 嵌入式gis导航路径二维流型分层寻优方法
US20230195345A1 (en) Multi-dimensional solid state drive block access
CN109408278B (zh) 数据处理方法及装置
CN108038064B (zh) 一种PairBlock擦除出错的处理方法及装置
CN116401180A (zh) 一种数据读写控制方法、装置、介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170619

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Yujing

Inventor before: Deng Mingfei

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170914

Address after: 063000, Tangshan City Road, Hebei Province, North East large building, pay 126 floor, 2 door, No. 302

Patentee after: Wang Yujing

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 541199 Lingui County, Guilin, Lingui County, Lingui Town, Xinglin Road, No. 1, unit 202, Room 202

Patentee after: Wang Yujing

Address before: 063000, Tangshan City Road, Hebei Province, North East large building, pay 126 floor, 2 door, No. 302

Patentee before: Wang Yujing

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180914

Address after: 244000 Shun an Jinshan Industrial Park, Yi An District, Tongling, Anhui

Patentee after: ANHUI RONGJING FENGDAN BIOTECHNOLOGY Co.,Ltd.

Address before: 541199 room 2, unit 8, Xinglin Road, Lingui Town, Lingui, the Guangxi Zhuang Autonomous Region, 202, Guilin, 202

Patentee before: Wang Yujing

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231107

Address after: 910-1510, Building A3, Phase I, Innovation Industrial Park, No. 800 Wangjiang West Road, High tech Zone, Hefei City, Anhui Province, 230000

Patentee after: Hefei Jiaying Juhe Technology Service Co.,Ltd.

Address before: 244000 Shun an Jinshan Industrial Park, Yi An District, Tongling, Anhui

Patentee before: ANHUI RONGJING FENGDAN BIOTECHNOLOGY Co.,Ltd.