CN111897668B - 基于链表的文件并行拷贝方法、装置和计算机设备 - Google Patents
基于链表的文件并行拷贝方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111897668B CN111897668B CN202011058761.4A CN202011058761A CN111897668B CN 111897668 B CN111897668 B CN 111897668B CN 202011058761 A CN202011058761 A CN 202011058761A CN 111897668 B CN111897668 B CN 111897668B
- Authority
- CN
- China
- Prior art keywords
- file
- linked list
- data stream
- files
- information
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于链表的文件并行拷贝方法、装置和计算机设备,该方法包括:在目标存储介质中创建文件对象,在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;构建第一结构体,放入文件信息;将第一结构体放入第一文件链表中,循环遍历第一文件链表,读取所述文件信息;判断文件大小是否超过阈值,对数据流分块处理;构建第二结构体,将第二结构体和数据流放入第二文件链表中;依次将第二文件链表中文件信息和数据流写入文件对象,并关闭文件对象。本发明通过构建文件链表和结构体持续向取证设备写入数据流,从而减少文件拷贝时创建、关闭文件对象的次数,达到提高小文件批量拷贝速度的效果。
Description
技术领域
本发明涉及计算机取证领域,尤其涉及一种基于链表的文件并行拷贝方法、装置和计算机设备。
背景技术
文件拷贝是计算机取证常用的方法之一,拷贝原理为:首先对计算机中的文件进行检索,打开文件句柄将数据读取到缓存中,再从缓存写入到取证设备中。
传统的文件拷贝方法在文件拷贝过程中,会使用链表实现不同存储路径文件的拷贝,减少文件复制粘贴的次数。具体做法为:将不同存储路径文件的地址信息记录到链表中,根据链表上的地址信息,将对应的文件同时写入到目标存储介质中,从而实现不同存储路径文件的同时拷贝。但是,这种方法在文件拷贝的过程中需要不断的创建和关闭文件对象,例如对N个文件进行拷贝,则需要创建和关闭N次文件对象,导致文件拷贝的速度很慢。
发明内容
本发明的目的在于提供一种基于链表的文件并行拷贝方法、装置和计算机设备,在计算机取证时,可显著提高大量小文件拷贝的速度。
实现本发明目的的技术方案为:一种基于链表的文件并行拷贝方法,所述方法包括:
步骤1、在目标存储介质中创建文件对象,在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;
步骤2、构建第一结构体,放入文件信息;
步骤3、将第一结构体放入第一文件链表中,循环遍历第一文件链表,读取所述文件信息;
步骤4、判断文件大小是否超过阈值,若是,执行步骤5;否则转至步骤6;
步骤5、对数据流分块处理;
步骤6、构建第二结构体,包含文件信息、文件分块情况、当前数据块序号、数据块大小、文件总大小;
步骤7、将第二结构体和数据流放入第二文件链表中;
步骤8、依次将第二文件链表中文件信息和数据流写入文件对象,并关闭文件对象。
一种基于链表的文件并行拷贝装置,包括:
文件对象创建模块,用于在取证设备中创建文件对象;
文件链表构建模块,用于在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;
第一结构体构建模块,用于放入文件信息;构建的第一结构体放入第一链表中,循环遍历第一文件链表,读取所述文件信息;
文件大小判断模块,用于判断文件大小是否超过阈值,若是,对数据流进行分块处理,然后转至第二结构体构建模块;若不超过阈值,则直接转至第二结构体构建模块;
第二结构体构建模块,用于放入文件信息、文件分块情况、当前数据块序号、数据块大小、文件总大小;
文件对象写入模块,依次将第二文件链表中文件信息和数据流写入文件对象,并关闭文件对象。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
与现有技术相比,本发明的有益效果为:(1)通过构建文件链表和结构体函数,持续向取证设备写入数据流,减少了文件拷贝时,创建、关闭文件对象的次数,提高了文件拷贝的效率,非常适用于大批量小文件的拷贝;(2)基于计算机取证的特殊需求,需要在短时间内拷贝大量文件,且优先拷贝敏感文件;本发明将多个小文件合并成一个大文件进行文件拷贝,拷贝效率会提高很多,但拷贝完之后大文件是不能直接查看的,需要释放文件之后才能查看,尽管不符合传统文件拷贝的需求,但在取证领域具有突出的效果;(3)本发明链表中记录了包括文件类型、文件名、文件大小、文件位置、创建时间、修改时间的文件信息;现有技术中链表仅记录文件地址等信息;本发明记录的文件信息用来还原文件的原始属性;(4)判断文件大小是否超过4MB,是为了平衡拷贝速度和拷贝的稳定性,从拷贝速度上来说,文件越大速度越快,但是占用内存越大,程序的运行内存有限,过大会导致程序崩溃。
附图说明
图1为本发明实施例提供的文件并行拷贝流程图。
图2为本发明实施例提供的链表1和链表2的构建和使用示意图。
具体实施方式
下面结合附图对本发明实施例中的技术方案做进一步详细说明。
本发明的一种基于链表的文件并行拷贝方法,包括以下步骤:
步骤1、在目标存储介质中创建文件对象,在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;
步骤2、构建第一结构体,放入文件信息;
步骤3、将第一结构体放入第一链表中,循环遍历第一文件链表,读取所述文件信息;
步骤4、判断文件大小是否超过阈值,若是,执行步骤5;否则执行步骤6;
步骤5、对数据流分块处理,
步骤6、构建第二结构体,包含文件信息、文件分块情况、当前数据块序号、数据块大小、文件总大小;
步骤7、将第二结构体和数据流放入第二链表中;
步骤8、依次将第二链表中文件信息和数据流写入文件对象,并关闭文件对象。
进一步的,所述的循环遍历第一文件链表,读取所述文件信息,具体为:
将待拷贝文件信息放入第一文件链表中,第一文件链表用于区分文件拷贝的优先级,根据不同的文件信息,分别将文件放入first、after和last链表中,然后按照first→after→last的顺序进行遍历,读取文件信息。
进一步的,根据取证的业务场景和用户需求,对不同类型的文件的优先级进行划分,优先级高的文件放到first链表中,然后是after和last链表。
进一步的,所述first、after和last链表为同类型链表。
进一步的,优先级的划分方法为:将计算机文件分类列出,让用户进行选择;用户勾选的文件类型为第一优先级,放入first中;文件夹拷贝是第二优先级放入after中,根据后缀名搜索的到的文件优先级最后,放入last中。
进一步的,所述文件信息包括文件类型、文件名、文件大小、文件位置、创建时间、修改时间。
进一步的,文件分块的大小为3~5MB。文件越小,处理速度越慢,文件越大处理速度越快,但占用内存大,程序容易崩溃。
本实施例中,优选的,根据文件信息判断文件大小是否超过4MB,若超过,则对文件相应的数据流进行分块处理,每块数据流最大长度为4MB。
进一步的,第一文件链表、第二文件链表由若干个节点组成的,通过指针和有效数据构成节点,指针区域用于指向链表的下一个节点从而构成链表。
本发明还提供一种基于流式输出的文件拷贝装置,包括:
文件对象创建模块,用于在取证设备中创建文件对象;
文件链表构建模块,用于在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;
第一结构体构建模块,用于放入文件信息;构建的第一结构体放入第一链表中,循环遍历第一文件链表,读取所述文件信息;
文件大小判断模块,用于判断文件大小是否超过阈值,若是,对数据流进行分块处理,然后转至第二结构体构建模块;若不超过阈值,则直接转至第二结构体构建模块;
第二结构体构建模块,用于放入文件信息、文件分块情况、当前数据块序号、数据块大小、文件总大小;
文件对象写入模块,依次将第二文件链表中文件信息和数据流写入文件对象,并关闭文件对象。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
综上所述,本发明通过构建文件链表和结构体函数,在进行多个小文件批量拷贝时,只需创建一次文件对象即可持续不断地向取证设备写入数据,从而提高了小文件批量拷贝的效率。
下面结合实施例和附图对本发明进行详细说明。
实施例
图1为本发明实施例提供的一种文件并行拷贝方法的流程图,本实施例适用于将计算机中的小文件合并为大文件拷贝到目标存储介质,该方法具体包括如下步骤:
在目标存储介质创建文件对象,在计算机内存中创建文件链表1和链表2,链表1中包含first、after、last三个链表。写入的文件信息数量为多个,每个链表也包括多个文件信息,例如first包括文件信息1、文件信息2…文件信息N1;链表1和链表2的结构如图2所示。对计算机中的文件进行遍历查找,将查找到的文件按照文件类型划分优先级,构建TO_BE_READ_FILE结构体,里面包含文件类型、文件名、文件大小、文件位置、创建时间、修改时间等信息。按照优先级顺序将TO_BE_READ_FILE结构体放入链表first、after、last中。对链表1进行循环遍历,读取文件信息,判断文件大小是否超过4M,如果超过4M则对文件进行分块处理。构建BLOCK_ENTRY结构体,里面包含从链表1中读取的文件信息、文件的分块情况、当前是第几块数据、数据块的大小和文件总大小。将BLOCK_ENTRY和数据流,放入链表2中,依次将链表2中文件信息和数据流写入文件对象,并关闭文件对象,完成多个文件的合并拷贝。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于链表的文件并行拷贝方法,其特征在于,所述方法包括:
步骤1、在目标存储介质中创建文件对象,在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;
步骤2、构建第一结构体,放入文件信息;
步骤3、将第一结构体放入第一文件链表中,循环遍历第一文件链表,读取所述文件信息;具体为:
将待拷贝文件信息放入第一文件链表中,第一文件链表用于区分文件拷贝的优先级,根据不同的文件信息,分别将文件放入first、after和last链表中,然后按照first→after→last的顺序进行遍历,读取文件信息;
步骤4、判断文件大小是否超过阈值,若是,执行步骤5;否则转至步骤6;
步骤5、对数据流分块处理;
步骤6、构建第二结构体,包含文件信息、文件分块情况、当前数据块序号、数据块大小、文件总大小;
步骤7、将第二结构体和数据流放入第二文件链表中;
步骤8、依次将第二文件链表中文件信息和数据流写入文件对象,并关闭文件对象。
2.根据权利要求1所述的基于链表的文件并行拷贝方法,其特征在于,根据取证的业务场景和用户需求,对不同类型的文件的优先级进行划分,优先级高的文件放到first链表中,然后是after和last链表。
3.根据权利要求2所述的基于链表的文件并行拷贝方法,其特征在于,所述first、after和last链表为同类型链表。
4.根据权利要求1-3任一项所述的基于链表的文件并行拷贝方法,其特征在于,所述文件信息包括文件类型、文件名、文件大小、文件位置、创建时间、修改时间。
5.根据权利要求1所述的基于链表的文件并行拷贝方法,其特征在于,根据文件信息判断文件大小是否超过4MB,若超过,则对文件相应的数据流进行分块处理,每块数据流最大长度为4MB。
6.根据权利要求1所述的基于链表的文件并行拷贝方法,其特征在于,第一文件链表、第二文件链表由若干节点组成,通过指针和有效数据构成节点,指针区域用于指向链表的下一个节点从而构成链表。
7.一种基于链表的文件并行拷贝装置,其特征在于,包括:
文件对象创建模块,用于在取证设备中创建文件对象;
文件链表构建模块,用于在计算机内存中构建第一文件链表和第二文件链表,同时根据拷贝任务对计算机中的文件进行遍历查找;
第一结构体构建模块,用于放入文件信息;构建的第一结构体放入第一文件链表中,循环遍历第一文件链表,读取所述文件信息,具体为:将待拷贝文件信息放入第一文件链表中,第一文件链表用于区分文件拷贝的优先级,根据不同的文件信息,分别将文件放入first、after和last链表中,然后按照first→after→last的顺序进行遍历,读取文件信息;
文件大小判断模块,用于判断文件大小是否超过阈值,若是,对数据流进行分块处理,然后转至第二结构体构建模块;若不超过阈值,则直接转至第二结构体构建模块;
第二结构体构建模块,用于放入文件信息、文件分块情况、当前数据块序号、数据块大小、文件总大小;
文件对象写入模块,将第二结构体和数据流放入第二文件链表中,依次将第二文件链表中文件信息和数据流写入文件对象,并关闭文件对象。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011058761.4A CN111897668B (zh) | 2020-09-30 | 2020-09-30 | 基于链表的文件并行拷贝方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011058761.4A CN111897668B (zh) | 2020-09-30 | 2020-09-30 | 基于链表的文件并行拷贝方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897668A CN111897668A (zh) | 2020-11-06 |
CN111897668B true CN111897668B (zh) | 2021-01-08 |
Family
ID=73224073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011058761.4A Active CN111897668B (zh) | 2020-09-30 | 2020-09-30 | 基于链表的文件并行拷贝方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897668B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726842B (zh) * | 2021-07-09 | 2022-07-05 | 贝壳找房(北京)科技有限公司 | 一种文件上传方法和装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843824A (zh) * | 2015-02-28 | 2016-08-10 | 深圳市创达天盛智能科技有限公司 | 多对象复制方法及装置 |
CN110245121A (zh) * | 2019-05-08 | 2019-09-17 | 深圳市战音科技有限公司 | 文件管理方法、系统以及电子设备 |
US20190379724A1 (en) * | 2018-06-08 | 2019-12-12 | Gabino M. Roche, Jr. | Technologies for file sharing |
-
2020
- 2020-09-30 CN CN202011058761.4A patent/CN111897668B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843824A (zh) * | 2015-02-28 | 2016-08-10 | 深圳市创达天盛智能科技有限公司 | 多对象复制方法及装置 |
US20190379724A1 (en) * | 2018-06-08 | 2019-12-12 | Gabino M. Roche, Jr. | Technologies for file sharing |
CN110245121A (zh) * | 2019-05-08 | 2019-09-17 | 深圳市战音科技有限公司 | 文件管理方法、系统以及电子设备 |
Non-Patent Citations (3)
Title |
---|
Performance Analysis of Union and CoW File Systems with Docker;Rajdeep Dua等;《2016 International Conference on Computing, Analytics and Security Trends (CAST)》;20170501;全文 * |
基于2I的手机数据关联挖掘取证技术研究;廖赟;《信息系统工程》;20200531;全文 * |
线程池实现文件并行拷贝总结;liushiyong1;《http://blog.chinaunix.net/uid-28581043-id-3826792.html》;20130730;第1页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111897668A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038206B (zh) | Lsm树的建立方法、lsm树的数据读取方法和服务器 | |
CN107729558B (zh) | 文件系统碎片整理的方法、系统、装置及计算机存储介质 | |
CN105320775A (zh) | 数据的存取方法和装置 | |
CN111723056B (zh) | 小文件的处理方法、装置、设备和存储介质 | |
CN108121813B (zh) | 数据管理方法、装置、系统、存储介质及电子设备 | |
CN107122130B (zh) | 一种数据重删方法及装置 | |
CN111897668B (zh) | 基于链表的文件并行拷贝方法、装置和计算机设备 | |
CN112463058B (zh) | 一种碎片数据整理方法、装置及存储节点 | |
CN114265670B (zh) | 一种内存块整理方法、介质及计算设备 | |
CN114780537A (zh) | 流表存储及报文转发方法、装置、计算设备及介质 | |
CN110287129B (zh) | 基于固态硬盘的l2p表更新及写入管理方法和装置 | |
CN103793468A (zh) | 数据存储方法和装置以及数据读取方法和装置 | |
CN108829345B (zh) | 日志文件的数据处理方法和终端设备 | |
CN113568877B (zh) | 一种文件合并方法、装置、电子设备及存储介质 | |
CN113255742A (zh) | 一种政策匹配度计算方法、系统、计算机设备和存储介质 | |
CN110019295B (zh) | 数据库检索方法、装置、系统以及存储介质 | |
CN113626089B (zh) | 一种基于bios系统的数据操作方法、系统、介质及设备 | |
CN113821193B (zh) | 一种信息生成的方法、装置和存储介质 | |
CN111356094B (zh) | 一种sim短消息处理方法及装置 | |
CN109376097B (zh) | 解决多微引擎的哈希查找学习及地址老化冲突的方法 | |
CN113572747A (zh) | 一种ip地址的处理方法、装置、存储介质和处理器 | |
CN111143288A (zh) | 一种数据存储方法、系统及相关装置 | |
CN113625938A (zh) | 一种元数据存储方法及其设备 | |
CN113407107A (zh) | 一种数据存储方法、装置及设备 | |
CN114218621A (zh) | 一种小文件快速检查方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |