CN106557275A - 一种数据处理的方法及装置 - Google Patents

一种数据处理的方法及装置 Download PDF

Info

Publication number
CN106557275A
CN106557275A CN201510641685.2A CN201510641685A CN106557275A CN 106557275 A CN106557275 A CN 106557275A CN 201510641685 A CN201510641685 A CN 201510641685A CN 106557275 A CN106557275 A CN 106557275A
Authority
CN
China
Prior art keywords
image files
fat image
directory entry
new
cluster
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
CN201510641685.2A
Other languages
English (en)
Other versions
CN106557275B (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.)
Actions Technology Co Ltd
Original Assignee
Actions (zhuhai) 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 Actions (zhuhai) Technology Co Ltd filed Critical Actions (zhuhai) Technology Co Ltd
Priority to CN201510641685.2A priority Critical patent/CN106557275B/zh
Publication of CN106557275A publication Critical patent/CN106557275A/zh
Application granted granted Critical
Publication of CN106557275B publication Critical patent/CN106557275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种数据处理的方法及装置。其方法包括:确定目标磁盘容量;根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。本发明提供的技术方案,提高了FAT镜像文件的生成速度,有效的解决了现有的FAT镜像文件生成效率较低的问题。

Description

一种数据处理的方法及装置
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理的方法及装置。
背景技术
在计算机科学中,文件配置表(File Allocation Table,FAT)文件是一种常见的文件系统类型,多种操作系统(例如Windows、Linux、MacOSX等等)都支持,常用于可移动存储设备上。
例如,采用与非闪存(NAND FLASH)作为存储介质的消费类电子产品如MP3、MP4、平板电脑、学习机等,常用FAT32来作为用户数据区的文件系统格式。这些产品在出厂前通常会在用户数据区预制一些宣传资料和学习资料(以下简称用户数据),包括音乐、视频、文本、动画等。工厂进行大批量生产时,至少需要考虑到产品的NAND FLASH用户数据区的容量差异。如果两台产品的NAND FALSH用户数据区的容量不同,在保证充分使用NANDFLASH用户数据区的磁盘空间的前提下,就需要向这两台产品的NANDFALSH用户数据区中拷贝不同的FAT镜像文件。在实际量产时,通常只有一份原始FAT镜像文件,考虑到不同产品的NAND FLASH用户数据区的实际容量不尽相同,就需要生产方根据产品的NAND FALSH用户数据区的实际容量重做FAT镜像文件,将原始的FAT镜像文件解包到本地磁盘作为一个目录,再重新将此目录按所需容量做一个新的FAT镜像文件。在文件数量多(如学习类型的电子产品预制的学习动画文件数以万计)的情况下,存在更多的磁盘文件操作,效率低下(目录/文件的遍历以及小文件的存取效率都比较低),是制约生产力的瓶颈。
以上仅是以采用NAND FLASH作为存储介质的消费类电子产品的量产为例进行说明。在安全数码卡(Secure Digital Memory Card,SD卡)、反式闪存卡(Trans-flash Card,TF卡)、嵌入式多媒体卡(Embedded Multi Media Card,EMMC)等其他存储设备的数据批量拷贝中,也存在提及的情况。另外,在根据目标磁盘容量需求生成新的FAT镜像文件的其他场景中,也存在提及的情况。
如何实现提高生成新的FAT镜像文件的效率,是目前需要解决的问题。
发明内容
本发明的目的是提供一种数据处理的方法及装置,以解决现有的生成新的FAT镜像文件效率较低的问题。
本发明的目的是通过以下技术方案实现的:
一种数据处理的方法,包括:
确定目标磁盘容量;
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,其实现方式至少包括以下两种:
实现方式一、
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入新的FAT镜像文件;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入新的FAT镜像文件中与该目录项对应的簇中,同时更新其所对应目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回新的FAT镜像文件相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
实现方式二、
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;调整完全部目录项后,先将调整后的目录项写入新的FAT镜像文件,再依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入新的FAT镜像文件中与目录项对应的簇中,并设置新的FAT镜像文件中的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
可选的,针对量产,上述实现方式一具体是:在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入所述设备;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入所述设备的数据结束位置;更新其所对应新目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回所述设备的相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并写入所述设备。上述实现方式二具体是:在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;将调整后的目录项写入所述设备;调整完全部目录项后,依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入所述设备中;设置新的FAT镜像文件中的簇分配表中各簇的状态并写入所述设备中。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,包括:
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件之后,该方法还包括:
向接入上位机的设备中写入所述新的FAT镜像文件,所述目标磁盘容量为所述设备的可用磁盘容量。
基于与方法同样的发明构思,本发明实施例还提供一种数据处理的装置,包括:
目标磁盘容量确定模块,用于确定目标磁盘容量;
镜像文件生成模块,用于根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件时,所述镜像文件生成模块用于:
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入新的FAT镜像文件;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入新的FAT镜像文件中与该目录项对应的簇中,同时更新其所对应目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回新的FAT镜像文件相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置;或者,
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;调整完全部目录项后,先将调整后的目录项写入新的FAT镜像文件,再依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入新的FAT镜像文件中与目录项对应的簇中,并设置新的FAT镜像文件中的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件时,所述镜像文件生成模块用于:
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入所述设备;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入所述设备的数据结束位置;更新其所对应新目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回所述设备的相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并写入所述设备;或者,
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;将调整后的目录项写入所述设备;调整完全部目录项后,依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入所述设备中;设置新的FAT镜像文件中的簇分配表中各簇的状态并写入所述设备中。
可选的,所述镜像文件生成模块用于:
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件。
可选的,还包括数据复制模块,用于向接入上位机的设备中写入所述新的FAT镜像文件,所述目标磁盘容量为所述设备的可用磁盘容量。
本发明实施例提供的技术方案,不需要将原始的FAT镜像文件解包到本地磁盘,再遍历本地磁盘生成新的FAT镜像文件。而是通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,进而在很大程度上避免了遍历目录/文件等效率低下的磁盘文件操作,因此可以提高FAT镜像文件的生成速度。
附图说明
图1为本发明一个实施例提供的数据处理方法流程图;
图2为本发明另一个实施例提供的数据处理方法流程图;
图3为本发明又一个实施例提供的数据处理方法流程图;
图4为本发明实施例提供的装置示意图。
具体实施方式
在对本发明实施例提供的方案进行详细说明之前,首先介绍FAT文件的系统结构。
本发明实施例中涉及的FAT文件,可以包括但不仅限于FAT16/32,exFAT等等。
FAT16/32文件的系统结构包括保留区、FAT区和数据区三部分。
其中,保留区的前512字节为磁盘操作系统引导记录(DBR),其中记载了如下信息:每个扇区的字节数(BYTE_PER_SECTOR,BPS),保留扇区数(RES_SECTOR),FAT表的个数(FAT_CNT,其取值为1或2,如果取值为2,FAT2是FAT1的备份),每个FAT表的扇区数(SECTOR_PER_FAT,SPF),每个簇的扇区数(SECTOR_PER_CLUSTER,SPC),每个簇的字节数(BYTE_PER_CLUSTER=BYTE_PER_SECTOR×SECTOR_PER_CLUSTER,BPC)。
exFAT文件的系统结构包括保留区,FAT区和数据区。
其中,保留区的前12个扇区是主引导(BOOT)区,接下来的12个扇区是备份BOOT区,BOOT区等同于FAT16/32文件中的DBR。
本发明实施例提供一种数据处理的方法,如图1所示,包括如下操作:
步骤100、确定目标磁盘容量。
步骤110、根据上述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。
本发明实施例提供的技术方案,不需要将原始的FAT镜像文件解包到本地磁盘,再遍历本地磁盘生成新的FAT镜像文件。而是通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,进而在很大程度上避免了遍历目录/文件等效率低下的磁盘文件操作,因此可以提高FAT镜像文件的生成速度。
本发明实施例中,步骤110的具体实现方式有多种。
一种实现方式中,根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入新的FAT镜像文件;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入新的FAT镜像文件中与该目录项对应的簇中,同时更新其所对应目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回新的FAT镜像文件相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
另一种实现方式中,根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;调整完全部目录项后,先将调整后的目录项写入新的FAT镜像文件,再依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入新的FAT镜像文件中与目录项对应的簇中,并设置新的FAT镜像文件中的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
本发明实施例中,可以在上位机(例如PC)的硬盘中生成新的FAT镜像文件。即,上述步骤110是根据目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件。具体可以结合上述两种实现方式中的任一种。
那么,生成的FAT镜像文件就保存在上位机的硬盘中。本发明实施例不对保存的新的FAT镜像文件的用途进行限定。
本发明实施例提供的技术方案可以用于量产,也可以用于其它用途。对于量产而言,上述步骤110生成新的FAT镜像文件之后,还向接入上位机的设备中写入新的FAT镜像文件。相应的,目标磁盘容量就是接入的设备的可用磁盘容量。
本发明实施例中,可用磁盘容量是指可以用于存放FAT镜像文件的磁盘的容量。在很多以NAND FLASH作为存储介质的电子产品中,可用磁盘容量是指用户数据区的磁盘容量。
对于量产而言,上述实施例是在上位机的硬盘上生成新的FAT镜像文件,再写入接入上位机的设备。应当指出的是,也可以不在上位机的硬盘上生成新的FAT镜像文件。相应的上述步骤110的第一种实现方式具体是:在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入所述设备;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入所述设备的数据结束位置;更新其所对应新目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回所述设备的相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并写入所述设备。上述步骤110的第二种实现方式具体是:在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;将调整后的目录项写入所述设备;调整完全部目录项后,依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入所述设备中;设置新的FAT镜像文件中的簇分配表中各簇的状态并写入所述设备中。
本发明实施例中,簇分配表至少包括FAT表。如果FAT文件结构中还包括簇堆分配表(例如exFAT文件),那么,上述簇分配表还包括簇堆分配表。
下面以量产这一具体场景为例,对本发明实施例提供的技术方案进行详细说明。
假设需要根据上位机硬盘中的原始镜像文件以及目标磁盘容量,生成新的FAT镜像文件。其实现过程如图2所示,具体包括如下操作:
步骤200、根据目标磁盘容量重建DBR和FAT表,在上位机的硬盘中创建新的镜像文件S1,将生成的DBR和FAT表写入新的镜像文件S1
该步骤完成后,FAT表中所有簇处于未分配状态。FAT表中的数据保存在缓存FATS1中。
步骤210、确定资料目录的根目录在原始镜像文件S0中对应的起始簇号,本实施例中记作Cn
步骤220、从原始镜像文件S0的FAT表中获取以簇号Cn为起始的簇链,并获取该簇链的数据。
其中,获取的数据为当前目录下的全部目录项(DIRS0)。
步骤230、为镜像文件S1创建匹配的目录项集合DIRS1,并按簇大小BPC1对齐,在FATS1中为DIRS1分配簇链,记录镜像文件S1此时的大小LS1,将DIRS1写入新的镜像文件S1
步骤240、遍历目录项DIRS0
其中,如果目录项已删除或目录名为./..,读取下一个目录,如果目录项未使用,则结束遍历,执行步骤280,如果目录项有效,执行步骤250。
步骤250、检查目录项类型,如果目录项类型为文件,执行步骤260,如果目录项类型为子目录,执行步骤270。
步骤260、取得文件起始和结束簇号,读取整块数据,写入镜像文件S1尾部,在FATS1为此文件内容分配连续簇链并更新DIRS1中对应短目录项的起止簇,返回步骤240。
步骤270、更新DIRS1中此子目录的起始簇号,取DIRS0中此子目录起始簇号Cn,返回步骤220。
步骤280、将DIRS1写回镜像S1的LS1位置,并在递归结束后执行步骤290。
步骤290、将FATS1写回镜像文件S1的FAT1和FAT2的起始位置。
假设需要量产以NAND FLASH作为存储介质的设备,NAND FLASH采用FAT32分区格式,并需要预置资料目录(即待复制数据)。那么,检测到有设备接入上位机后,确定接入的设备的可用磁盘容量;根据可用磁盘容量,通过遍历原始镜像文件的目录项在接入的设备中生成新的FAT镜像文件。本次量产完成,提示是否继续下一次量产。如果收到的指令指示继续下一次量产,重复执行上述处理过程;如果接收到的指令指示不继续量产,则流程结束。
其中,根据可用磁盘容量,通过遍历原始镜像文件的目录项在接入的设备中生成新的FAT镜像文件的过程如图3所示,包括如下操作:
步骤300、根据可用磁盘容量重建DBR和FAT表,将生成的DBR和FAT表写入接入的设备。
该步骤完成后,FAT表中所有簇处于未分配状态。FAT表中的数据保存在缓存FATS1中。
步骤310、确定资料目录的根目录在原始镜像文件S0中对应的起始簇号,本实施例中记作Cn
步骤320、从原始镜像文件S0的FAT表中获取以簇号Cn为起始的簇链,并获取该簇链的数据。
其中,获取的数据为当前目录下的全部目录项(DIRS0)。
步骤330、为接入设备的用户数据区创建匹配的目录项集合DIRS1,并按簇大小BPC1对齐,在FATS1中为DIRS1分配簇链,记录接入设备的用户数据区此时的位置LS1,将DIRS1写入接入的设备。
步骤340、遍历目录项DIRS0
其中,如果目录项已删除或目录名为./..,读取下一个目录,如果目录项未使用,则结束遍历,执行步骤380,如果目录项有效,执行步骤350。
步骤350、检查目录项类型,如果目录项类型为文件,执行步骤360,如果目录项类型为子目录,执行步骤370。
步骤360、取得文件起始和结束簇号,读取整块数据,写入接入的设备的用户数据区的尾部,在FATS1为此文件内容分配连续簇链并更新DIRS1中对应短目录项的起止簇,返回步骤340。
步骤370、更新DIRS1中此子目录的起始簇号,取DIRS0中此子目录起始簇号Cn,返回步骤320。
步骤380、将DIRS1写回接入设备的用户数据区的LS1位置,并在递归结束后执行步骤390。
步骤390、将FATS1写回接入的设备中相应的位置。
以上实施例以FAT16/32文件为例,本发明实施例提供的技术方案同样适用于exFAT文件。其中,需调整BOOT区、FAT区、簇堆分配表BAT,大写转换表直接拷贝,普通数据区则按需从起始簇开始遍历目录和文件,重建目录项(改变起始簇号和簇个数,文件内容直接拷贝,尾部按新簇对齐补0),同步新FAT中的簇分配状态和簇链以及簇堆分配表BAT中的簇位图。
基于与方法同样的发明构思,本发明实施例还提供一种数据处理的装置,如图4所示,包括:
目标磁盘容量确定模块401,用于确定目标磁盘容量;
镜像文件生成模块402,用于根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。
本发明实施例提供的技术方案,不需要将原始的FAT镜像文件解包到本地磁盘,再遍历本地磁盘生成新的FAT镜像文件。而是通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,进而在很大程度上避免了遍历目录/文件等效率低下的磁盘文件操作,因此可以提高FAT镜像文件的生成速度。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件时,所述镜像文件生成模块用于:
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入新的FAT镜像文件;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入新的FAT镜像文件中与该目录项对应的簇中,同时更新其所对应目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回新的FAT镜像文件相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置;或者,
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;调整完全部目录项后,先将调整后的目录项写入新的FAT镜像文件,再依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入新的FAT镜像文件中与目录项对应的簇中,并设置新的FAT镜像文件中的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
可选的,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件时,所述镜像文件生成模块用于:
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入所述设备;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入所述设备的数据结束位置;更新其所对应新目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回所述设备的相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并写入所述设备;或者,
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;将调整后的目录项写入所述设备;调整完全部目录项后,依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入所述设备中;设置新的FAT镜像文件中的簇分配表中各簇的状态并写入所述设备中。
可选的,所述镜像文件生成模块用于:
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件。
可选的,还包括数据复制模块,用于向接入上位机的设备中写入所述新的FAT镜像文件,所述目标磁盘容量为所述设备的可用磁盘容量。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种数据处理的方法,其特征在于,包括:
确定目标磁盘容量;
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。
2.根据权利要求1所述的方法,其特征在于,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,包括:
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入新的FAT镜像文件;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入新的FAT镜像文件中与该目录项对应的簇中,同时更新其所对应目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回新的FAT镜像文件相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置;或者,
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;调整完全部目录项后,先将调整后的目录项写入新的FAT镜像文件,再依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入新的FAT镜像文件中与目录项对应的簇中,并设置新的FAT镜像文件中的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
3.根据权利要求2所述的方法,其特征在于,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,包括:
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入所述设备;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入所述设备的数据结束位置;更新其所对应新目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回所述设备的相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并写入所述设备;或者,
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;将调整后的目录项写入所述设备;调整完全部目录项后,依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入所述设备中;设置新的FAT镜像文件中的簇分配表中各簇的状态并写入所述设备中。
4.根据权利要求1或2所述的方法,其特征在于,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件,包括:
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件。
5.根据权利要求4所述的方法,其特征在于,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件之后,该方法还包括:
向接入上位机的设备中写入所述新的FAT镜像文件,所述目标磁盘容量为所述设备的可用磁盘容量。
6.一种数据处理的装置,其特征在于,包括:
目标磁盘容量确定模块,用于确定目标磁盘容量;
镜像文件生成模块,用于根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件。
7.根据权利要求6所述的装置,其特征在于,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件时,所述镜像文件生成模块用于:
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入新的FAT镜像文件;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入新的FAT镜像文件中与该目录项对应的簇中,同时更新其所对应目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回新的FAT镜像文件相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置;或者,
根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并写入新的FAT镜像文件;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;调整完全部目录项后,先将调整后的目录项写入新的FAT镜像文件,再依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入新的FAT镜像文件中与目录项对应的簇中,并设置新的FAT镜像文件中的簇分配表中各簇的状态,并将更新后的簇分配表分别写回新的FAT镜像文件中FAT表所在位置。
8.根据权利要求7所述的装置,其特征在于,根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项生成新的FAT镜像文件时,所述镜像文件生成模块用于:
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取目录项,按目标磁盘容量对应的簇大小确定目录项占用的簇数,并按照所述簇数将获取的目录项写入所述设备;根据所述目标磁盘容量对全部目录项依次进行调整,并在每调整完一个目录项后,从所述已有的FAT镜像文件中读取该目录项对应的数据,并写入所述设备的数据结束位置;更新其所对应新目录项的起始簇号;每级目录调整完后,将其新的所有目录项写回所述设备的相应位置;调整完全部目录项后,设置新的FAT镜像文件的簇分配表中各簇的状态,并写入所述设备;或者,
在上位机的内存中创建新的FAT镜像文件;根据所述目标磁盘容量生成新的FAT镜像文件的DBR和簇分配表,并将生成的DBR和簇分配表写入接入所述上位机的设备;从已有的FAT镜像文件中获取全部目录项;根据所述目标磁盘容量对所述全部目录项进行调整;将调整后的目录项写入所述设备;调整完全部目录项后,依次从所述已有的FAT镜像文件中读取每个目录项对应的数据,写入所述设备中;设置新的FAT镜像文件中的簇分配表中各簇的状态并写入所述设备中。
9.根据权利要求6或7所述的装置,其特征在于,所述镜像文件生成模块用于:
根据所述目标磁盘容量,通过遍历已有的FAT镜像文件的目录项在上位机的硬盘中生成新的FAT镜像文件。
10.根据权利要求9所述的装置,其特征在于,还包括数据复制模块,用于向接入上位机的设备中写入所述新的FAT镜像文件,所述目标磁盘容量为所述设备的可用磁盘容量。
CN201510641685.2A 2015-09-29 2015-09-29 一种数据处理的方法及装置 Active CN106557275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510641685.2A CN106557275B (zh) 2015-09-29 2015-09-29 一种数据处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510641685.2A CN106557275B (zh) 2015-09-29 2015-09-29 一种数据处理的方法及装置

Publications (2)

Publication Number Publication Date
CN106557275A true CN106557275A (zh) 2017-04-05
CN106557275B CN106557275B (zh) 2019-06-11

Family

ID=58417492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510641685.2A Active CN106557275B (zh) 2015-09-29 2015-09-29 一种数据处理的方法及装置

Country Status (1)

Country Link
CN (1) CN106557275B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089842A (zh) * 2006-06-13 2007-12-19 环达电脑(上海)有限公司 复制文件到嵌入式设备中的方法
JP2012094242A (ja) * 2005-03-04 2012-05-17 Panasonic Corp データ処理装置
CN104572492A (zh) * 2015-01-22 2015-04-29 福州瑞芯微电子有限公司 一种烧录数据到fat32分区的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012094242A (ja) * 2005-03-04 2012-05-17 Panasonic Corp データ処理装置
CN101089842A (zh) * 2006-06-13 2007-12-19 环达电脑(上海)有限公司 复制文件到嵌入式设备中的方法
CN104572492A (zh) * 2015-01-22 2015-04-29 福州瑞芯微电子有限公司 一种烧录数据到fat32分区的方法和装置

Also Published As

Publication number Publication date
CN106557275B (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
US8024383B2 (en) Fat directory structure for use in transaction safe file
US10831734B2 (en) Update-insert for key-value storage interface
US11010079B2 (en) Concept for storing file system metadata within solid-stage storage devices
CN107766374B (zh) 一种海量小文件存储读取的优化方法和系统
CN103544045A (zh) 一种基于hdfs的虚拟机镜像存储系统及其构建方法
US9542401B1 (en) Using extents of indirect blocks for file mapping of large files
KR20110056276A (ko) 액세스 속도가 가속화된 휴대용 저장 디바이스
WO2015007155A1 (zh) 一种数据存储方法及装置
JPWO2008072590A1 (ja) ライトワンス記録装置、コントローラ、アクセス装置、及びライトワンス記録システム
CN107239526A (zh) 文件系统实现方法、碎片整理方法、操作位置定位方法
US20170168735A1 (en) Reducing time to read many files from tape
CN104615629A (zh) 信息处理设备以及游戏数据的数据结构
CN101901152A (zh) 一种内容批量更新技术的方法
CN104572492A (zh) 一种烧录数据到fat32分区的方法和装置
CN117112304B (zh) 一种磁盘克隆方法与系统
CN106709014A (zh) 一种文件系统转换方法及装置
US10013217B1 (en) Upper deck file system shrink for directly and thinly provisioned lower deck file system in which upper deck file system is stored in a volume file within lower deck file system where both upper deck file system and lower deck file system resides in storage processor memory
CN107148612A (zh) 一种扩展用户分区的方法和装置
CN103235761B (zh) 利用隐藏扇区实现u盘多系统的方法
CN106557275A (zh) 一种数据处理的方法及装置
CN106874457B (zh) 一种通过虚拟目录来提升元数据集群性能的方法
CN104360956A (zh) 一种数据拷贝方法及装置
CN108334453A (zh) 一种文件调试方法、装置、终端设备及存储介质
CN109478181A (zh) 用于使得能够修改文件系统卷内的多个数据对象的系统和方法
CN115480692A (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
CP01 Change in the name or title of a patent holder

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder