CN103294658B - 一种文档保存方法及装置 - Google Patents

一种文档保存方法及装置 Download PDF

Info

Publication number
CN103294658B
CN103294658B CN201210054272.0A CN201210054272A CN103294658B CN 103294658 B CN103294658 B CN 103294658B CN 201210054272 A CN201210054272 A CN 201210054272A CN 103294658 B CN103294658 B CN 103294658B
Authority
CN
China
Prior art keywords
data
increment
combined
merging
document
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.)
Expired - Fee Related
Application number
CN201210054272.0A
Other languages
English (en)
Other versions
CN103294658A (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.)
New Founder Holdings Development Co ltd
Pku Founder Information Industry Group Co ltd
Peking University Founder Group Co Ltd
Founder Apabi Technology Ltd
Original Assignee
Founder Information Industry Holdings Co Ltd
Peking University Founder Group Co Ltd
Beijing Founder Apabi Technology 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 Founder Information Industry Holdings Co Ltd, Peking University Founder Group Co Ltd, Beijing Founder Apabi Technology Co Ltd filed Critical Founder Information Industry Holdings Co Ltd
Priority to CN201210054272.0A priority Critical patent/CN103294658B/zh
Priority to US13/782,848 priority patent/US20130232110A1/en
Publication of CN103294658A publication Critical patent/CN103294658A/zh
Application granted granted Critical
Publication of CN103294658B publication Critical patent/CN103294658B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及电子文档数据处理技术领域,尤其涉及一种文档保存方法及装置,用于提高对支持增量保存的文档进行保存操作时的安全性;该方法包括:将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并;利用合并后的数据覆盖所述待合并的增量保存数据。可见该方法可提高对支持增量保存的文档进行保存时的安全性。

Description

一种文档保存方法及装置
技术领域
本发明涉及电子文档数据处理技术领域,尤其涉及一种文档保存方法及装置。
背景技术
在对电子文档的应用中,经常会涉及到对文档的编辑和保存操作。除了在文档末尾追加数据,多数情况下还需要修改或删除文档的现有数据。如果直接在文档数据源文件上进行操作,在删除旧数据写入新数据过程中一旦发生意外中断,就可能造成文档数据的丢失或损坏,给用户带来不可估量的损失。
为了更安全地实现文档编辑和保存,现有的文档处理软件大多采用如下两种方法:
第一种,采用临时文件备份原始文档及修改记录;该方法在保存过程中如果发生意外中断而导致文档数据破坏时,则可利用已备份的临时文件中的数据修复受损文档;但该方法无法保证用户或程序能及时发现文档受损并主动修复,客观上存在较大的风险;
第二种,为文档创建临时副本,将修改后的数据写入副本,再通过文件重命名等方式使用副本替换原文档。该方法有较高的安全性,但对于数据量较大的文档创建副本在时间和存储空间上的开销会比较大。另外,如果实际应用仅允许编辑文档数据而不允许副本替换,则不可以采用该方法。
一些支持增量保存的电子文档格式,如PDF、DOC、CEBX等,允许通过在文档末尾追加一个独立的数据块来保存修改结果,新增数据块包含了新修改的与上次保存结果有差异的信息。增量保存巧妙地将文档数据的修改操作变换为纯追加操作,有效地避免了因为保存过程意外中断造成的文档已有数据丢失或损坏的问题。另外,增量保存还最大限度地减少了需要拷贝或移动的数据量,提高了文档保存的效率,也便于对文档修订历史进行追溯。
但对于上述增量保存在实际应用中,如果较为频繁地使用,文档就会因为增量保存数据积累而导致总数据量变得十分庞大,不利于对文档进行归档或分发。因此在增量保存次数或数据量超过一定阈值或者用户提出的要求时,文档处理软件仍然需要执行非增量保存,即将多次生成的增量保存数据合并生成更简洁的文档。
但本发明人发现,对于支持增量保存的文档格式,现有技术在编辑保存应用中仍存在如下缺陷:
第一、增量保存采用的是纯追加操作,不会造成文档已有数据的丢失或损坏,但是如果在末尾追加增量修改数据块的过程被意外中断,现有方法并不能确保追加了这个不完整的数据块时文档仍可以被正确解析和使用。
第二、对通过合并多次增量保存结果实现非增量保存的过程,就不再是纯追加操作,而是需要将文档中待合并的增量数据块删除,并在原位置写入合并后生成的增量数据块。如果在原文档上直接进行删除替换操作而不采取任何额外的安全措施,该过程的意外中断就会因旧数据已丢失而新数据尚未写完造成文档损坏且无法修复;而采用前文中提到的临时文件备份或副本替换等方法也同样存在效率和安全性问题。
发明内容
本发明实施例提出一种文档保存的方法及装置,用于提高对支持增量保存的文档进行保存操作时的安全性。
一种文档保存的方法,所述方法包括:
将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并;
利用合并后的数据覆盖所述待合并的增量保存数据。
一种文档保存的方法,所述方法包括:
将当前已被修改、但未进行保存的数据作为增量保存数据;
将所述增量保存数据保存在文档末尾;
启用所述增量保存数据。
一种文档保存的装置,所述装置包括:
合并单元,用于将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并;
替换单元,用于利用合并后的数据覆盖所述待合并的增量保存数据。
可见,采用本发明实施例提供的方法,首先对当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并,将合并后的数据保存在文档末尾,此时,未写完的数据不会被文档使用;数据完整写入后启用合并后的数据,并同时禁用待合并的增量保存数据;创建合并后的数据的未启用的副本;使用该副本替换待合并的增量保存数据;此时,文档正在使用合并后的数据,因此使用所述未启用的副本覆盖已被禁用的待合并数据,不会损坏文档格式或丢失文档数据;在替换操作完成后启用副本并同时禁用合并后的数据,此时所述副本之后的所有数据均不再被文档使用,可以安全删除。如无需合并增量保存数据,可使用本发明实施例提供的另外一种方法,即下述实施例一中的方法,直接将当前已被修改、但未进行保存的数据保存在文档末尾;数据完整写入后启用所述数据。可见该方法可提高支持增量保存的文档保存操作时的安全性,保证在保存过程中的绝大部分时间点上发生意外中断,文档格式仍然正确并且没有丢失或损坏数据。
附图说明
图1为本发明实施例提供一种文档保存方法流程示意图;
图2为现有技术中增量保存的保存形式示意图;
图3为现有技术中产生多个增量保存数据的增量保存形式示意图;
图4为本发明实施例二提供的第一种文档保存的方法流程示意图;
图5为本发明实施例二提供的保存形式示意图;
图6为本发明实施例三提供的XDA文档打包格式的结构示意图;
图7为本发明实施例三提供的XDA文档进行增量保存的过程示意图;
图8为本发明实施例三提供的XDA文档合并增量数据保存的过程示意图;
图9为本发明实施例三提供的XDA文档合并增量数据保存的过程示意图;
图10为本发明实施例三提供的XDA文档合并增量数据保存的过程示意图;
图11为本发明实施例提供的一种文档保存的装置的结构示意图。
具体实施方式
本发明实施例提供一种文档保存的方法及装置,该方法包括:首先对当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并,将合并后的数据保存在文档末尾,此时,未写完的数据不会被文档使用;数据完整写入后启用合并后的数据,并同时禁用待合并的增量保存数据;创建合并后的数据的未启用的副本;使用该副本替换待合并的增量保存数据;此时,文档正在使用合并后的数据,因此使用所述未启用的副本覆盖已被禁用的待合并数据,不会损坏文档格式或丢失文档数据;在替换操作完成后启用副本并同时禁用合并后的数据,此时所述副本之后的所有数据均不再被文档使用,可以安全删除。如图1所示,具体过程如下:
步骤11,将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并;
步骤12,利用合并后的数据覆盖所述待合并的增量保存数据。
具体的,在进行合并之后、且在进行覆盖操作之前,进一步包括:
将合并后的数据保存在文档末尾。
具体的,在所述将合并后的数据保存在文档末尾之后、且在利用合并后的数据覆盖所述待合并的增量保存数据之前,所述方法进一步包括:
启用所述合并后的数据,并禁用所述待合并的增量保存数据。
具体的,所述利用合并后的数据覆盖所述待合并的增量保存数据包括:
创建所述合并后的数据的未启用的副本,使用所述副本覆盖所述已禁用的待合并的增量保存数据;启用所述副本,禁用所述合并后的数据。
具体的,将所述合并后的数据的保存在文档末尾包括:
比较所述合并后的数据与所述待合并的增量保存数据的大小;如果所述合并后的数据大于所述待合并的增量保存数据,在所述待合并的增量保存数据之后生成空白数据块;将所述合并后的数据保存在所述空白数据块之后;所述空白数据块的大小为所述合并后的数据与所述待合并的增量保存数据所占空间之差;如果所述合并后的数据小于所述待合并的增量保存数据,将所述合并后的数据保存在所述待合并的增量保存数据之后。
具体的,在进行合并操作之前进一步包括:
如果存在多个待合并的增量保存数据,判断所述多个待合并的增量保存数据是否为存储于文档末尾的连续数据;此时,所述将当前已被修改、但未进行保存的数据与待合并的增量保存数据进行合并包括:
在确定是时,将当前已被修改、但未进行保存的数据与待合并的增量保存数据进行合并。
具体的,在禁用所述合并后的数据之后,进一步包括:
删除所述副本之后的内容。
本发明还提供另一种文档保存的方法,过程如下:
步骤A,将当前已被修改、但未进行保存的数据作为增量保存数据;
步骤B,将所述增量保存数据保存在文档末尾;
步骤C,启用所述增量保存数据。
支持增量保存的文档格式应当确保文档可以按照一定的顺序寻找并使用每个增量保存数据。较佳地,文档格式应当允许增量保存数据之间不连续存储,或者允许文档将某些增量保存数据视为可跳过或空数据块。数据在以下两种情况,但不限于在以下两种情况下不被文档使用:
第一,文档通常使用索引表记录所有增量保存数据的偏移位置等,或在每个增量数据中记录下一个增量数据的偏移位置等;未被索引到的数据将不会被文档使用。
第二,可通过对设置数据禁用标识,在文档检查该标识后将其等同为无用数据。
因此,在新增或编辑一个增量保存数据过程中,可以通过不添加索引数据、或设置禁用标识等方法确保该数据不会被文档使用,即禁用。在增量保存数据新增或编辑完成后,通过修改索引数据、设置使用标识等方法在文档中启用合并后的数据,即允许文档使用合并后的数据。本发明中涉及到启用或禁用增量保存数据的操作均采用此方法。
以下以具体实施例介绍:
实施例一:
本发明实施例提供第一种文档保存的方法,当用户对某一文档中的部分数据进行修改后,默认采用增量保存方式将当前修改的内容作为增量保存数据保存在该文档的末尾,如图2所示,增量保存采用的是纯追加操作,文档原始数据不会丢失。为了确保文档格式始终正确,在追加新的增量保存数据的过程中,应确保该数据不被启用。即使保存过程意外中断,文档尾部追加的未写完的数据也始终不会被使用,文档仍然可以被正确解析。只有当增量保存数据完整写入后,才启用该数据并完成文档保存。具体过程如下:
步骤A,将当前已被修改、但未进行保存的数据作为增量保存数据;
步骤B,将所述增量保存数据保存在文档末尾;
步骤C,启用所述增量保存数据。
实施例二:
在进行多次修改后文档末尾会保留多个增量保存数据,如图3所示。在增量保存操作的次数或增量保存数据超过一定阈值或用户提出的要求时,需要进行非增量保存,即对于前面一次或多次增量保存操作所产生的增量保存数据以及用户当前已经修改但未进行保存的增量保存数据进行合并和替换操作。如图4所示,本发明实施例二提供第二种文档保存方法,具体过程如下:
步骤41,如图5所示,记录增量保存数据1的起始位置的偏移量Ps以及文档当前的结束位置的偏移量Pe;
具体的,偏移量均相对于文档的起始位置;
步骤42,计算合并后的数据的长度Ln;
本步骤中,合并后的数据由所有待合并的增量保存数据与当前用户已经修改但未进行保存的数据合并得到;
本步骤中,待合并的增量保存数据为增量保存数据1和增量保存数据2;
步骤43,比较Ln与Pe-Ps的大小;如果Ln小于或等于Pe-Ps,执行步骤45;否则执行步骤44;
步骤44,在文档末尾预留出未启用的空白的数据块;并在预留出的空白的数据块后记录文档的结束位置的偏移量Pw;将合并后的数据保存在文档的末尾,即Pw之后;如图5所示;
本步骤计算空白的数据块大小的方法为Ln-(Pe-Ps);
步骤45,将文件结尾Pe记为Pw,将合并后的数据保存在文档的末尾,即Pw之后;
本步骤中,在保存合并后的数据的过程中,应确保该合并后的数据未被文档启用,即禁用合并后的数据。
步骤46,启用Pw之后的合并后的数据;同时将被替代的Ps~Pw之间的所有增量保存数据禁用;
本步骤中,对于整个文档,合并后的数据是用于替代Ps~Pw之间的所有增量保存数据;
步骤47,创建并禁用所述合并后的数据的副本;
步骤48,使用副本替换待合并的增量保存数据;
具体替换过程为,将副本回写到Ps~Pw之间,形成长度为Ln的新的未启用的数据,覆盖并替代已被禁用的所有增量保存数据。
本步骤执行时,由于合并后的数据的长度Ln不大于Pw-Ps,因此在将该合并后的数据写入Ps~Pw之间也不会覆盖在Pw之后的已启用的增量保存数据;
本步骤中,在回写数据过程中,应确保该数据未被文档启用。
步骤49,将Ps之后长度为Ln的增量数据启用,同时将被替代的Pw之后的增量保存数据禁用。
本步骤中,如果Ps+Ln到Pw之间留有空白,应当将这块数据调整为一个未启用的空数据。
步骤410,删除副本之后的内容;
可通过如下方式执行删除操作:将文档大小调整为Ps+Ln,即可自动删除Ps+Ln之后的数据。
较佳的,如果存在多个待合并的增量保存数据,在执行步骤41之前还需检查文档中的待合并的所有增量保存数据是否为存储于文档末尾的连续数据,如果是则执行步骤41;否则结束操作或按现有技术进行操作;
较佳的,对进行增量保存后的数据进行合并操作的非增量保存操作,本发明提供的方法充分利用文档支持增量保存数据的特点,采用先保存合并后的新数据再删除并替换旧数据的方法,在保存过程中如果文档意外关闭,尽可能的保证文档的格式正确,并且没有丢失或损坏数据;
较佳的,在文件保存过程中,步骤44、45、48及410包含在文件中写入数据及调整文件大小的操作,占用了保存过程的绝大部分时间。本发明所述方法可以保证在这些步骤中发生意外中断,正在修改的数据块始终未被文档启用,并且文档总在使用完整的合并前或合并后的增量数据块。也就是说,中断保存的文档数据没有丢失或破坏,仍然可以被正确解析和使用。美中不足的是,步骤44、45及410中断可能在文件末尾留有无用数据,48的中断会在文件中间留有无用数据,但这些数据不会影响到文档格式的正确性。
较佳的,步骤46、49中包含启用与替代增量保存数据的修改,由于耗时较短其出错概率相对较低。即便保存过程意外中断,文档内容数据也未造成损坏,不依赖外部数据即可由文档处理装置自动或在用户指导下修复。
另外,本发明所述方法所有操作均在原文件上操作,拷贝或移动的数据量小,降低了时间和空间开销,不依赖于文件系统,对以文件流等形式封装的各种存储设备、网络设备同样适用。
以下以具体实施例对实施例一、二的方案做进一步说明:
实施例三:
目前很多电子文档的格式都采用“物理容器+文档模型”的构架来描述和存储数据。物理容器主要用于存储数据,类似于一个虚拟存储系统,将文档模型中涉及的各类数据描述文件组织起来。许多现有文档格式采用Zip包作为物理容器,比如微软的OOXML、XPS等,但Zip格式本身不提供对增量保存的支持。
在本实施例中,采用一种简称XDA(XML-basedDocumentArchive)的电子文档打包格式,支持以增量保存方式保存文档模型中修改过的数据描述文件也可支持对多次增量保存结果进行合并的保存操作。任何采用XDA作为物理容器的电子文档格式均可依赖XDA相关特性实现以对文档修改的保存操作,并采用全部或部分增量修改历史记录作为文档的修订历史版本。如图6所示,显示了XDA文档打包格式的结构;其中XDA由文件头、文件流入口描述以及各文件的内容流组成。文件头描述XDA的版权信息、XDA的版本号、文件流入口描述数量等基本的信息。文件流入口描述包含每个文件流在文件中的位置以及文件信息。各文件的内容流是文件流入口描述中记录的多个文件流的顺序组合。
在XDA文档中,文件流入口描述与各文件的内容流成对出现,形成一组增量修改的历史记录,每个文件流入口描述中记录了其对应的各文件内容流起始位置的指针,即相对文件头的偏移位置,还包括下一个文件流入口描述的起始位置的指针(如果不存在则置0)。第一个文件流入口描述的起始位置指针以及文件中总的文件流入口描述数量,也就是历史版本数量,则记录在文件头中。
图7显示了XDA文档进行增量保存的示意图,其过程如下:
首先在XDA文档的文件尾部增加新的文件流入口描述和各文件的内容流,然后将原来最后一个文件流入口描述的指针指向新增加的文件流入口描述起始位置。这样,XDA的历史版本可根据文件流入口描述的个数来确定,并通过文件流入口描述间的链接关系实现遍历访问。每进行一次增量保存,就增加一个文件流入口描述及相应的文件内容流块,可以认为XDA增加了一个历史版本。
图8显示了XDA文档合并增量数据保存的示意图;其过程包括:最新的一次修改在保存时并未生成新的历史版本,而是选择与上一次修改的版本进行合并。在进行合并保存时,需要将这两次修改的文件流入口描述及文件流合并,如果对同一文件进行了多次修改则保留最近的修改结果。修改过程需要将原文件中的文件流入口描述2及之后的文件数据替换为合并后的数据。如果在原文件上直接删除旧数据再写入新数据,则在保存过程中如发生意外中断,原有文件数据就可能丢失,造成不可挽回的损失。
如图9至图10所示,本发明实施例的具体过程如下:
步骤一,记录第二个历史版本文件流入口描述,即第一个待合并数据,起始位置的偏移量Ps以及文档结束位置的偏移量Pe;
步骤二,计算合并历史版本后新生成的文件流入口描述及各文件数据流的总长度Ln;
步骤三,由于Ln大于Pe-Ps,取二者的最大值Lw(等于Ln),在文件末尾写入Pw-Pe长度的空白数据块;
步骤四,从Pw位置起生成并写入新生成的文件流入口描述及各文件数据流,刷新文件并清除临时缓存数据;
由于,XDA在第一个历史版本中Pn1位置处记录了第二个历史版本文件流入口描述的偏移位置,此时为Ps,并在文件头中Pn2位置处记录历史版本总数,此时值为2可不修改;
步骤五,将Pn1位置的值改为Pw。此时第二个历史版本文件流入口描述已切换为以Pw为起始位置的数据,Ps到Pw间的数据同时废弃;
步骤六,将文件中从Pw起长度为Lw的数据拷贝到Ps与Pw之间替换原有数据,并将拷贝后的文件流入口描述中指向各文件数据流块偏移位置的记录修改为正确的偏移值;
步骤七,将先前Pn1位置的值改回Ps并保存文件,即使用Ps偏移位置的文件流入口描述块替代Pw位置的文件流入口描述块;
步骤八,调整文件长度,丢弃Pw之后的文件数据,完成保存。
较佳的,在步骤一之前还可进一步包括:遍历XDA文档的所有文件流入口描述,检查确认数据的先后顺序,保证待合并的历史版本数据连续顺次存储在文件最后位置;
如图11所示,本发明实施例提供一种文档保存的装置,所述装置包括:
合并单元113,用于将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并;
替换单元116,用于利用合并后的数据覆盖所述待合并的增量保存数据。
所述装置还包括:
保存单元114,用于将合并后的数据保存在文档末尾。
操作单元115,用于启用所述合并后的数据,并禁用所述待合并的增量保存数据。
所述替换单元116具体用于:
创建所述合并后的数据的未启用的副本,使用所述副本覆盖所述已禁用的待合并的增量保存数据;
启用所述副本,禁用所述合并后的数据。
所述保存单元114具体用于:
比较所述合并后的数据与所述待合并的增量保存数据的大小;
如果所述合并后的数据大于所述待合并的增量保存数据,在所述待合并的增量保存数据之后生成空白数据块;将所述合并后的数据保存在所述空白数据块之后;所述空白数据块的大小为所述合并后的数据与所述待合并的增量保存数据所占空间之差;
如果所述合并后的数据小于所述待合并的增量保存数据,将所述合并后的数据保存在所述待合并的增量保存数据之后。
所述装置还包括:
判断单元112,用于在存在多个待合并的增量保存数据时,判断所述多个待合并的增量保存数据是否为存储于文档末尾的连续数据;
所述合并单元113具体用于,在所述判断单元112确定所述多个待合并的增量保存数据为存储于文档末尾的连续数据时,将当前已被修改、但未进行保存的数据与待合并的增量保存数据进行合并。
所述装置还包括:
删除单元117,用于删除所述副本之后的内容。
所述装置还包括:
执行单元111,用于将当前已被修改、但未进行保存的数据作为增量保存数据;
所述操作单元115还用于,启用或禁用所述增量保存数据;
所述保存单元114还用于,将所述增量保存数据保存在文档末尾。
综上所述,有益效果:
采用本发明实施例提供的方法,首先对当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并,将合并后的数据保存在文档末尾,此时,未写完的数据不会被文档使用;数据完整写入后启用合并后的数据,并同时禁用待合并的增量保存数据;创建合并后的数据的未启用的副本;使用该副本替换待合并的增量保存数据;此时,文档正在使用合并后的数据,因此使用所述未启用的副本覆盖已被禁用的待合并数据,不会损坏文档格式或丢失文档数据;在替换操作完成后启用副本并同时禁用合并后的数据,此时所述副本之后的所有数据均不再被文档使用,可以安全删除。如无需合并增量保存数据,可使用本发明实施例提供的另外一种方法,即上述实施例一中的方法,直接将当前已被修改、但未进行保存的数据保存在文档末尾;数据完整写入后启用所述数据。可见该方法可提高支持增量保存的文档保存操作时的安全性,保证在保存过程中的绝大部分时间点上发生意外中断,文档格式仍然正确并且没有丢失或损坏数据。
较佳的,在上述实施例二的文件保存过程中,步骤44、45、48及410包含在文件中写入数据及调整文件大小的操作,占用了保存过程的绝大部分时间。本发明所述方法可以保证在这些步骤中发生意外中断,正在修改的数据块始终未被文档启用,并且文档总在使用完整的合并前或合并后的增量数据块。也就是说,中断保存的文档数据没有丢失或破坏,仍然可以被正确解析和使用。美中不足的是,步骤44、45及410中断可能在文件末尾留有无用数据,48的中断会在文件中间留有无用数据,但这些数据不会影响到文档格式的正确性。
较佳的,对进行增量保存后的数据进行合并的保存操作,本发明提供的方法充分利用文档支持增量保存数据的特点,采用先保存合并后的新数据再删除并替换旧数据的方法,保证在保存绝大部分时间点上意外中断,文档格式正确并且没有丢失或损坏数据;
较佳的,本发明所述方法所有操作均在原文件上操作,拷贝或移动的数据量小,降低了时间和空间开销,不依赖于文件系统,对以文件流等形式封装的各种存储设备、网络设备同样适用。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (5)

1.一种文档保存的方法,其特征在于,所述方法包括:
将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并;
比较所述合并后的数据与所述待合并的增量保存数据的大小;
如果所述合并后的数据大于所述待合并的增量保存数据,在所述待合并的增量保存数据之后生成空白数据块;将所述合并后的数据保存在所述空白数据块之后;所述空白数据块的大小为所述合并后的数据与所述待合并的增量保存数据所占空间之差;
如果所述合并后的数据小于所述待合并的增量保存数据,将所述合并后的数据保存在所述待合并的增量保存数据之后,启用所述合并后的数据,并禁用所述待合并的增量保存数据,利用合并后的数据覆盖所述待合并的增量保存数据。
2.如权利要求1所述的方法,其特征在于,所述利用合并后的数据覆盖所述待合并的增量保存数据包括:
创建所述合并后的数据的未启用的副本,使用所述副本覆盖所述已禁用的待合并的增量保存数据;
启用所述副本,禁用所述合并后的数据。
3.如权利要求1所述的方法,其特征在于,在进行合并操作之前进一步包括:
如果存在多个待合并的增量保存数据,判断所述多个待合并的增量保存数据是否为存储于文档末尾的连续数据;
所述将当前已被修改、但未进行保存的数据与待合并的增量保存数据进行合并包括:
在确定是时,将当前已被修改、但未进行保存的数据与待合并的增量保存数据进行合并。
4.如权利要求2所述的方法,其特征在于,在禁用所述合并后的数据之后,进一步包括:
删除所述副本之后的内容。
5.一种文档保存的装置,其特征在于,所述装置包括:
合并单元,用于将当前已被修改、但未进行保存的数据以及待合并的增量保存数据进行合并,
保存单元,用于比较所述合并后的数据与所述待合并的增量保存数据的大小;
如果所述合并后的数据大于所述待合并的增量保存数据,在所述待合并的增量保存数据之后生成空白数据块;将所述合并后的数据保存在所述空白数据块之后;所述空白数据块的大小为所述合并后的数据与所述待合并的增量保存数据所占空间之差;
如果所述合并后的数据小于所述待合并的增量保存数据,将所述合并后的数据保存在所述待合并的增量保存数据之后;
操作单元,用于启用所述合并后的数据,并禁用所述待合并的增量保存数据;
替换单元,用于利用合并后的数据覆盖所述待合并的增量保存数据。
CN201210054272.0A 2012-03-02 2012-03-02 一种文档保存方法及装置 Expired - Fee Related CN103294658B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210054272.0A CN103294658B (zh) 2012-03-02 2012-03-02 一种文档保存方法及装置
US13/782,848 US20130232110A1 (en) 2012-03-02 2013-03-01 Method and apparatus for saving a document

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210054272.0A CN103294658B (zh) 2012-03-02 2012-03-02 一种文档保存方法及装置

Publications (2)

Publication Number Publication Date
CN103294658A CN103294658A (zh) 2013-09-11
CN103294658B true CN103294658B (zh) 2016-07-13

Family

ID=49043426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210054272.0A Expired - Fee Related CN103294658B (zh) 2012-03-02 2012-03-02 一种文档保存方法及装置

Country Status (2)

Country Link
US (1) US20130232110A1 (zh)
CN (1) CN103294658B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660623A (zh) * 2013-11-18 2015-05-27 北大方正集团有限公司 网络文件离线编辑方法和系统
CN103942186A (zh) * 2014-03-28 2014-07-23 武汉传神信息技术有限公司 一种管理文档的方法及系统
CN103942185A (zh) * 2014-03-28 2014-07-23 武汉传神信息技术有限公司 一种存储文档的方法及系统
US11099729B1 (en) * 2020-05-29 2021-08-24 Capital One Services, Llc Methods and systems for displaying content based on a scroll pattern
CN112036133B (zh) * 2020-09-01 2024-03-26 珠海豹趣科技有限公司 一种文件保存方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1783093A (zh) * 2004-12-01 2006-06-07 国际商业机器公司 合并电子文档的多个不同版本的方法和装置
CN1809818A (zh) * 2003-06-20 2006-07-26 创道软件有限公司 在产生差别文件中使用的处理软件
CN101755263A (zh) * 2007-05-21 2010-06-23 亚马逊技术股份有限公司 通过用户设备的项目消费
CN101895578A (zh) * 2010-07-06 2010-11-24 国都兴业信息审计系统技术(北京)有限公司 基于综合安全审计的文档监控管理系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US5835601A (en) * 1994-03-15 1998-11-10 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US5806078A (en) * 1994-06-09 1998-09-08 Softool Corporation Version management system
US6349407B1 (en) * 1995-12-29 2002-02-19 Sun Microsystems, Incorporated Method and apparatus for re-introducing version control
US5715454A (en) * 1996-03-11 1998-02-03 Hewlett-Packard Company Version control of documents by independent line change packaging
US6014681A (en) * 1997-07-15 2000-01-11 Microsoft Corporation Method for saving a document using a background save thread
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US20070043774A1 (en) * 2001-06-27 2007-02-22 Inxight Software, Inc. Method and Apparatus for Incremental Computation of the Accuracy of a Categorization-by-Example System
US7945541B1 (en) * 2005-05-20 2011-05-17 Adobe Systems Incorporated Version set of related objects
CN1904879B (zh) * 2005-07-27 2011-01-12 国际商业机器公司 电子表格系统及获取电子表格文档的快照/历史信息的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809818A (zh) * 2003-06-20 2006-07-26 创道软件有限公司 在产生差别文件中使用的处理软件
CN1783093A (zh) * 2004-12-01 2006-06-07 国际商业机器公司 合并电子文档的多个不同版本的方法和装置
CN101755263A (zh) * 2007-05-21 2010-06-23 亚马逊技术股份有限公司 通过用户设备的项目消费
CN101895578A (zh) * 2010-07-06 2010-11-24 国都兴业信息审计系统技术(北京)有限公司 基于综合安全审计的文档监控管理系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ETL 中的数据增量抽取机制研究;戴浩等;《计算机工程与设计》;20091231;第30卷(第23期);第5552-5555页 *
导航电子地图数据增量更新研究;张斌等;《地理信息世界》;20111031(第5期);第33-36页 *

Also Published As

Publication number Publication date
CN103294658A (zh) 2013-09-11
US20130232110A1 (en) 2013-09-05

Similar Documents

Publication Publication Date Title
CN103294658B (zh) 一种文档保存方法及装置
US10248556B2 (en) Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9342444B2 (en) Log-structured filed system with file branching
CN103473067B (zh) 嵌入式Linux分区与数据还原方法、系统及系统开发方法
US20090276471A1 (en) Automatically Capturing and Maintaining Versions of Documents
CN102999433B (zh) 一种虚拟磁盘的冗余数据删除方法及系统
CN104615594A (zh) 一种数据更新方法及装置
CN108763473A (zh) 一种分布式存储的本地对象存储方法及装置
CN104537050A (zh) 一种批量快速创建文件系统元数据和数据的方法
KR20150122533A (ko) 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치
US9858287B2 (en) Storage system
CN103430178A (zh) 数据更新方法及装置和产品
CN104572492A (zh) 一种烧录数据到fat32分区的方法和装置
CN105512325A (zh) 多版本数据索引的更新、删除与建立方法及装置
CN105302488A (zh) 一种存储系统的数据写入方法及系统
US9471580B2 (en) File management apparatus, file management method, and program
CN103530067A (zh) 一种数据操作的方法和设备
CN106611364B (zh) 存储碎片整理方法及装置
JP2016122485A (ja) 情報記録プログラム、情報記録方法、および情報記録装置
CN102708107A (zh) 一种追加式文件存储的方法及系统
CN105404475A (zh) MCU片内小容量flash的存储管理系统及方法
CN103136234A (zh) 处理数据的方法和装置
CN113144618B (zh) 处理图形界面资源的方法、装置、电子设备和存储介质
CN105630406A (zh) 利用mram作为编辑缓存区的存储系统及编辑缓存方法
CN105573862A (zh) 一种恢复文件系统的方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: FOUNDER INFORMATION INDUSTRY HOLDING CO., LTD. BEI

Free format text: FORMER OWNER: BEIJING FOUNDER APABI TECHNOLOGY CO., LTD.

Effective date: 20130923

C10 Entry into substantive examination
C41 Transfer of patent application or patent right or utility model
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20130923

Address after: 100871 Beijing, Haidian District into the house road, founder of the building on the 9 floor, No. 298

Applicant after: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Applicant after: FOUNDER INFORMATION INDUSTRY HOLDINGS Co.,Ltd.

Applicant after: FOUNDER APABI TECHNOLOGY Ltd.

Address before: 100871 Beijing, Haidian District into the house road, founder of the building on the 9 floor, No. 298

Applicant before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Applicant before: FOUNDER APABI TECHNOLOGY Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100871, Beijing, Haidian District Cheng Fu Road 298, founder building, 9 floor

Patentee after: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee after: PKU FOUNDER INFORMATION INDUSTRY GROUP CO.,LTD.

Patentee after: FOUNDER APABI TECHNOLOGY Ltd.

Address before: 100871, Beijing, Haidian District Cheng Fu Road 298, founder building, 9 floor

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: FOUNDER INFORMATION INDUSTRY HOLDINGS Co.,Ltd.

Patentee before: FOUNDER APABI TECHNOLOGY Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220916

Address after: 3007, Hengqin international financial center building, No. 58, Huajin street, Hengqin new area, Zhuhai, Guangdong 519031

Patentee after: New founder holdings development Co.,Ltd.

Patentee after: FOUNDER APABI TECHNOLOGY Ltd.

Address before: 100871, Beijing, Haidian District Cheng Fu Road 298, founder building, 9 floor

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: PKU FOUNDER INFORMATION INDUSTRY GROUP CO.,LTD.

Patentee before: FOUNDER APABI TECHNOLOGY Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160713