一种文件夹树形图自动创建方法和系统与流程

文档序号:11230666阅读:1643来源:国知局
一种文件夹树形图自动创建方法和系统与流程

本发明涉及数字系统中的文件夹的优化技术,尤其涉及基于文件夹创建对应树形图的方法和系统。



背景技术:

在个人数字设备(例如智能手机、平板电脑、移动硬盘等)以及网络存储设备(例如云盘等)经过长期使用后,人工建立或者自动生成的文件夹数量会越来越多,造成文件夹的嵌套层级也会越来越多。

文件夹嵌套等造成了文件管理上的混乱,导致用户不容易找到所需的文件。而且,当用户试图以搜索方式找寻所需文件时,又往往会忘记文件名字而导致搜索无法有效进行,甚至有时候都不记得有这类文件的存在。

而传统的数字设备或者网络存储设备上的文件管理通过采用pc系统的资源管理器,只能顺着单一路径展开文件所在文件夹的路径地址。所以嵌套层级过多会导致通过这种操作方式来打开所需文件变得十分费时。



技术实现要素:

以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

本发明的目的在于提供了一种文件夹树形图自动创建方法和系统,随时优化文件夹的嵌套,便于查找所需文件。

本发明的技术方案为:本发明揭示了一种文件夹树形图自动创建方法,包括:

读取指定路径的所有文件和文件夹的名字并将其转换为字符串的形式,形成字符串文档;

将字符串文档转化为树状结构,形成文件夹树形图。

根据本发明的文件夹树形图自动创建方法的一实施例,在形成字符串文档的步骤包括:

调用python中的数据库;

指定扫描路径;

通过数据库,递归读入扫描路径中的所有层级中的所有文件和文件夹得到名字,其中每一层级的文件以及文件夹用序号排列,子级文件或者文件夹相对于父级文件夹缩进;

用字符串变量存储读入的文件和文件夹的名字,构成字符串文档。

根据本发明的文件夹树形图自动创建方法的一实施例,将字符串文档转化为树状结构的步骤包括:

读取字符串文档,通过按行划分转换成列表格式,构成列表变量;

初始化字典变量和结构层级变量;

基于列表变量和结构层级变量,检测字符串文档中的序号;

基于字典变量中的属性,将字符串文档按照序号进行分类存储,更新字典变量为结构化字典变量;

将结构化字典变量转化为树状结构并以树形图方式展现。

本发明还揭示了一种计算机存储介质,存储了计算机程序指令,计算机程序指令用于执行文件夹树形图自动创建方法中的步骤。

本发明还揭示了一种计算机系统,包括处理器和存储器,存储器上存储计算机程序,计算机程序在处理器中运行成计算机指令,所述计算机指令用于执行文件夹树形图自动创建方法中的步骤。

本发明还揭示了一种文件夹树形图自动创建系统,包括:

字符串文档转化模块,用于读取指定路径的所有文件和文件夹的名字并将其转换为字符串的形式,形成字符串文档;

树状结构转化模块,用于将字符串文档转化为树状结构,形成文件夹树形图。

根据本发明的文件夹树形图自动创建系统的一实施例,字符串文档转化模块包括:

数据库调用单元,用于调用python中的数据库;

路径指定单元,用于指定扫描路径;

文件名读取单元,通过数据库,递归读入扫描路径中的所有层级中的所有文件和文件夹得到名字,其中每一层级的文件以及文件夹用序号排列,子级文件或者文件夹相对于父级文件夹缩进;

变量存储单元,用字符串变量存储读入的文件和文件夹的名字,构成字符串文档。

根据本发明的文件夹树形图自动创建系统的一实施例,树状结构转化模块包括:

列表变量构造单元,用于读取字符串文档,通过按行划分转换成列表格式,构成列表变量;

字典变量和结构层级变量初始化单元,用于初始化字典变量和结构层级变量;

字符串文档序号检测单元,用于基于列表变量和结构层级变量,检测字符串文档中的序号;

字典变量结构化单元,用于基于字典变量中的属性,将字符串文档按照序号进行分类存储,更新字典变量为结构化字典变量;

树形图展现单元,用于将结构化字典变量转化为树状结构并以树形图方式展现。

本发明对比现有技术有更好的技术效果:本发明借助数据库读取扫描路径的所有文件以及文件夹的名字以形成文本,再将文本转换为树形结构,用这种方式自动生成各类数字设备、云盘中的嵌套的文件夹以及其中文件的树形图。

附图说明

图1示出了本发明的文件夹树形图自动创建方法的实施例的流程图。

图2至图5示出了图1所示的文件夹树形图自动创建方法中的步骤的细化子流程图。

图6示出了本发明的文件夹树形图自动创建系统的实施例的原理图。

具体实施方式

在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。

图1示出了本发明的文件夹树形图自动创建方法的实施例的流程。请参见图1,下面是对本实施例的方法的步骤的详述。

步骤s1:读取指定路径的所有文件和文件夹的名字并将其转换为字符串的形式,形成字符串文档。

这一步骤的实现进一步参见图2所示。

步骤s11:调用python中的数据库os。

步骤s12:指定扫描路径。

步骤s13:通过数据库os,用递归读入扫描路径中的所有层级中的所有文件和文件夹得到名字,其中每一层级的文件以及文件夹用序号排列,子级文件或者文件夹相对于父级文件夹缩进。

步骤s14:用字符串变量存储读入的文件和文件夹的名字,构成字符串文档。

例如,读好的字符串变量如以下示例。

1.biaoti

1.f1

1.f1.1.doc

2.f1.2.doc

3.f1.3.doc

4.f1.4

1.f1.4.1.doc

2.f1.4.2.doc

3.f1.4.3.doc

4.f1.4.4.doc

2.f2

1.f2.1.doc

2.f2.2.doc

3.f2.3.doc

4.f2.4.doc

3.f3

1.f3.1.doc

2.f3.2.doc

3.f3.3.doc

4.f3.4.doc

步骤s2:将字符串文档转化为树状结构,形成文件夹树形图。

这一步骤的实现进一步参见图3所示。

步骤s21:读取字符串文档,通过按行划分转换成列表格式,构成列表变量document。

步骤s22:初始化字典变量e_new和结构层级变量level。

初始化字典变量e_new,其中包括name,doc,ch三种属性,即e_new={'name':”,'doc':”,'ch':[]}。

初始化中间变量child以及child_document,即child=[],child_document=[]。

初始化结构层级level,即level=0。初始化字典变量e_new的属性name,即e_new['name']='扫描结构化'。

步骤s23:基于列表变量和结构层级变量,检测字符串文档中的序号。

检测字符串文档序号可以通过data_check函数来实现,函数的输入参数分别为document变量和level变量,输出参数传递给e_new变量的doc属性,即e_new['doc']、child以及child_document变量。

data_check函数的具体实现步骤如图4所示。

步骤s231:将传递参数分别传给document以及level变量。

步骤s232:初始化wiki_name,即wiki_name=[];初始化wiki_doc,即wiki_doc=[”foriinrange(200)];初始化d,即d=”;初始化index_1,即index_1='1.'

步骤s233:对document按行处理,每行利用find方法寻找index变量,若找到执行下一步;否则执行步骤s235。

这里的find方法是python内部的一个算法,目的是在字符串文本中找到目标字符串的起始位置。

步骤s234:将当前所在行的字符串变量,即document[i],读入到wiki_name变量中;将index进行叠加。

步骤s235:若index为'1.',则将当前所在行的字符串变量,即document[i]读入变量d中;若index不为'1.',则将当前行的字符串变量累加到变量wiki_doc中。

步骤s236:读取document的下一行,即i=i+1。若document被读完,则执行下一步,否则执行步骤s233。

步骤s237:返回变量d、wiki_name、wiki_doc以及level。

步骤s24:基于字典变量中的属性,将字符串文档按照序号进行分类存储,更新字典变量为结构化字典变量。

将字符串文档按照序号进行分类存储通过structured_cycle函数来实现。该函数的输入参数分别为::e_new的属性ch,即e_new['ch']、child、child_document以及level变量。该函数的输出参数传递给e_new的ch属性,即e_new['ch']。

structured_cycle函数的具体实现步骤如图5所示。

s241:将传递参数分别传给e_new、child、child_document、level变量。

s242:初始化循环次数i,即i=0。

s243:将列表变量child的第i个元素,即child[i]赋值给name变量。

s244:若列表变量child_document的第i个元素,即child_document[i]为”,则执行下一步;否则执行步骤s246。

s245:将doc、child_document_next、child_next变量分别赋值”、[]、[]。

s246:执行data_check模块,其中输入参数分别为:child_document[i]以及level变量;输出参数传递给:doc、child_next、child_document_next以及level变量。

s247:创建新的字典变量,即{'name':name,'doc':doc,'ch':[]},将新的字典变量添加到e_new中。

s248:若变量child_next为[],则执行下一步,否则执行步骤s2410。

s249:将变量level的值赋值给新的变量level_new并累加level_new,即level_new=level_new+1。用递归的方法重新执行structured_cycle模块,其中输入参数分别为:e_new第i个元素的属性ch,即e_new[i]['ch']、child_next、child_document_next以及level_new变量;输出参数传递给e_new第i个元素的ch属性,即e_new[i]['ch']。

s2410:累加循环次数i,即i=i+1。若循环次数i等于变量child的元素个数,则执行下一步,否则执行步骤s243。

s2411:返回变量e_new。

步骤s25:将结构化字典变量转化为树状结构并以树形图方式展现。

图6示出了本发明的文件夹树形图自动创建系统的实施例的原理。请参见图6,本实施例的系统包括:字符串文档转化模块和树状结构转化模块。其中字符串文档转化模块用于读取指定路径的所有文件和文件夹的名字并将其转换为字符串的形式,形成字符串文档。树状结构转化模块用于将字符串文档转化为树状结构,形成文件夹树形图。

字符串文档转化模块包括:数据库调用单元、路径指定单元、文件名读取单元、变量存储单元。

数据库调用单元用于调用python中的数据库。路径指定单元用于指定扫描路径。文件名读取单元用于通过数据库,递归读入扫描路径中的所有层级中的所有文件和文件夹得到名字,其中每一层级的文件以及文件夹用序号排列,子级文件或者文件夹相对于父级文件夹缩进。变量存储单元用字符串变量存储读入的文件和文件夹的名字,构成字符串文档。

树状结构转化模块包括:列表变量构造单元、字典变量和结构层级变量初始化单元、字符串文档序号检测单元、字典变量结构化单元、树形图展现单元。

列表变量构造单元用于读取字符串文档,通过按行划分转换成列表格式,构成列表变量。字典变量和结构层级变量初始化单元,用于初始化字典变量和结构层级变量。字符串文档序号检测单元,用于基于列表变量和结构层级变量,检测字符串文档中的序号。字典变量结构化单元,用于基于字典变量中的属性,将字符串文档按照序号进行分类存储,更新字典变量为结构化字典变量。树形图展现单元用于将结构化字典变量转化为树状结构并以树形图方式展现。

此外,本发明还揭示了一种计算机存储介质,其上计算机程序指令,计算机程序指令用于执行前述的如图1至图5所示的文件夹树形图自动创建方法中的步骤。

本发明还揭示了一种计算机系统,包括处理器和存储器,存储器上存储计算机程序,计算机程序在处理器中运行成计算机指令,计算机指令用于执行前述的如图1至图5所示的文件夹树形图自动创建方法中的步骤。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。

结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。

在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1