CN101727448B - 遍历电子装置目录的方法及其装置 - Google Patents

遍历电子装置目录的方法及其装置 Download PDF

Info

Publication number
CN101727448B
CN101727448B CN2008101674970A CN200810167497A CN101727448B CN 101727448 B CN101727448 B CN 101727448B CN 2008101674970 A CN2008101674970 A CN 2008101674970A CN 200810167497 A CN200810167497 A CN 200810167497A CN 101727448 B CN101727448 B CN 101727448B
Authority
CN
China
Prior art keywords
data
state
directory
present
last layer
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
CN2008101674970A
Other languages
English (en)
Other versions
CN101727448A (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.)
Jia Jiaojiao
Nie Xiufang
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CN2008101674970A priority Critical patent/CN101727448B/zh
Publication of CN101727448A publication Critical patent/CN101727448A/zh
Application granted granted Critical
Publication of CN101727448B publication Critical patent/CN101727448B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明涉及一种遍历(traverse)电子装置目录(directory)的方法,包含以下步骤:当浏览状态为初次找数据状态时,判断目前目录是否具有第一笔数据。当目前目录具有第一笔数据时,以第一笔数据为目前数据,并切换浏览状态为数据分析状态。当浏览状态为数据分析状态时,判断目前数据为文件或目录。当目前数据为文件时,切换浏览状态为找下一数据状态。当浏览状态为找下一数据状态时,判断目前数据是否具有下一笔数据。当目前数据具有下一笔数据时,以下一笔数据为目前数据,并切换浏览状态为数据分析状态。

Description

遍历电子装置目录的方法及其装置
技术领域
本发明是有关于一种遍历(traverse)电子装置目录(directory)的方法及其装置。
背景技术
随着科技的发展,越来越多的电子装置具有存储元件,用以存储数据。一般来说,现在的电子装置使用Win32(TM)操作系统的目录结构(directorytree)来存储数据。而在该目录结构下,Win32(TM)下的两组指令FindFirstFile()以及FindNextFile()被用来遍历(traverse)所存储的数据,并同时随着遍历的过程,来浏览或搜寻所遍历的数据。
然而,目前已知的目录内容浏览方法大多以递归式(recursive)程序在遇到目录结构时以递归方式重复呼叫该段程序,而使得程序在执行时期消耗庞大的内存空间。递归程序最大的问题是在目录浏览的过程中所累积的内存空间因存储路径信息而无法释放。随着目录结构的深度越深,内存占用量就越多。
由上可知,需要一种遍历电子装置目录的方法,用以节省遍历时所需要的内存空间。
发明内容
本发明所要解决的技术问题在于提供一种遍历电子装置目录的方法及其装置,利用浏览状态的切换,用以节省遍历时所需要的内存空间。
为了实现上述目的,本发明一实施例中提出一种遍历电子装置目录的方法,包含下列步骤:
(1)当浏览状态为初次找数据状态时,判断目前目录是否具有第一笔数据。
(2)当目前目录具有第一笔数据时,以第一笔数据为目前数据,并切换浏览状态为数据分析状态。
(3)当浏览状态为该数据分析状态时,判断目前数据为文件(file)或目录(directory)。
(4)当目前数据为文件时,切换该浏览状态为找下一数据状态。
(5)当浏览状态为找下一数据状态时,判断目前数据是否具有下一笔数据。
(6)当目前数据具有下一笔数据时,以下一笔数据为目前数据,并切换浏览状态为数据分析状态。
为了实现上述目的,本发明另一实施例中提出一种遍历目录的电子装置,包含初次找数据状态机、数据分析状态机以及找下一数据状态机。初次找数据状态机包含第一数据判断器以及第一数据指派器。第一数据判断器用以判断目前目录是否具有第一笔数据。第一数据指派器用以在目前目录具有第一笔数据时,以第一笔数据为目前数据。数据分析状态机用以判断目前数据为文件(file)或目录(directory)。找下一数据状态机用以在该目前数据为文件时执行。该找下一数据状态机包含下一数据判断器、第二数据指派器以及第一状态切换器。下一数据判断器用以判断目前数据是否具有下一笔数据。第二数据指派器用以在目前数据具有下一笔数据时,以下一笔数据为目前数据。第一状态切换器用以在以下一笔数据为该目前数据后,切换到数据分析状态机。
由上述本发明实施例可知,应用本发明具有下列优点。本发明根据浏览状态、目前目录以及目前数据来遍历目录。因此,每执行完一个状态后,便可结束目前执行的指令,不需要把指令存储在内存中,而节省了内存空间。尤其在所遍历的目录越深层时,本发明所节省的内存空间越显着。
附图说明
为使本发明的上述和其它目的、特征、优点与实施例能更明显易懂,所附附图的详细说明如下:
图1是依照本发明一实施例的一种遍历电子装置目录的方法的流程图;
图2是本发明一遍历目录的电子装置的方块图;
图3是本发明的初次找数据状态机的方块图;
图4时本发明的找下一数据状态机的方块图;
图5是本发明的数据分析状态机的方块图;
图6是本发明的离开目录状态机的方块图。
【主要组件符号说明】
120:初次找数据状态              260:找下一数据状态机
140:数据分析状态                262:下一数据判断器
160:找下一数据状态              264:第二数据指派器
180:离开目录状态                266:第一状态切换器
220:初次找数据状态机            270:上一层目录地址堆栈
222:第一数据判断器              280:离开目录状态机
224:第一数据指派器              282:堆栈判断器
240:数据分析状态机              284:堆栈取出器
242:堆栈推入器                  286:第三数据指派器
244:目录指派器                  288:第二目录指派器
246:第二状态切换器              290:第三状态切换器
248:搜寻器                      300:显示元件
具体实施方式
参照图1,其示出了依照本发明一实施例的一种遍历电子装置目录的方法的流程图。该遍历电子装置目录的方法借着浏览状态、目前目录以及目前数据,以遍历电子装置目录。该遍历电子装置目录的方法包含下列浏览状态(应了解到,在本实施例中所提及的步骤,除特别叙明其顺序者外,均可依实际需要调整其前后顺序,甚至可能同时或部分同时执行):
(1)初次找数据状态120。
(2)数据分析状态140。
(3)找下一数据状态160。
具体而言,当浏览状态为初次找数据状态120时,判断目前目录是否具有第一笔数据。当目前目录具有第一笔数据时,以第一笔数据为目前数据,并切换浏览状态为数据分析状态140。
当浏览状态为数据分析状态140时,判断目前数据为文件或目录。当目前数据为文件时,切换浏览状态为找下一数据状态160。
当浏览状态为找下一数据状态160时,判断目前数据是否具有一下一笔数据。当目前数据具有下一笔数据时,以下一笔数据为目前数据,并切换浏览状态为数据分析状态140。
如此一来,即可根据上述浏览状态的切换而遍历电子装置目录。此外,由于本实施例的遍历电子装置目录方法根据目前目录、目前数据以及浏览状态执行步骤,而不需要保留先前遍历时所执行的步骤指令。
另外,在图1中,当浏览状态为数据分析状态140时,可包含下列步骤:当目前数据为目录时,把目前目录的地址推入(push)至一上一层目录地址堆栈(stack)的顶端(top),作为一上一层目录地址。然后,在把目前目录的地址推入至上一层目录地址堆栈的顶端后,以目前数据为目前目录。并在以目前数据为目前目录后,切换浏览状态为初次找数据状态。因此,本实施例可在目前数据为目录时,对该目前数据的子数据做进一步遍历。
此外,在图1中,该遍历电子装置目录的方法还包含下列浏览状态:
(4)离开目录状态180。
具体而言,当目前目录不具有第一笔数据或目前数据不具有下一笔数据时,切换浏览状态为离开目录状态180。
当浏览状态为离开目录状态180时,判断上一层目录地址堆栈的顶端是否具有一上一层目录地址。当上一层目录地址堆栈的顶端具有上一层目录地址时,从上一层目录地址堆栈的顶端取出(pop)上一层目录地址。以目前目录为目前数据,并根据上一层目录地址,切换目前目录。在切换目前目录后,切换浏览状态为找下一数据状态160。
如此一来,本实施例可回到目前目录的上一层目录,而继续遍历上一层目录。
在图1中,当浏览状态为数据分析状态140时,可把目前数据与一欲搜寻数据条件做比较。如此一来,本实施例可使用于数据搜寻。
在图1中,当浏览状态为数据分析状态140时,可进一步在目前数据符合欲搜寻数据条件时,显示目前数据。因此,可将搜寻到的数据显示出来。
另外,在图1中,当浏览状态为数据分析状态140时,也可显示目前数据。因此,可将所遍历的数据显示出来,进而达到浏览目录的功能。
参照图2,其示出了依照本发明一实施例的一种遍历目录的电子装置的方块图。该遍历目录的电子装置可通过不同浏览状态的切换来遍历目录,以进一步达到浏览或搜寻目录的功能。该遍历目录的电子装置包含初次找数据状态机220、数据分析状态机240以及找下一数据状态机260。图3示出了初次找数据状态机220的方块图。同时参照图2与图3,初次找数据状态机220包含第一数据判断器222以及第一数据指派器224。第一数据判断器222用以判断一目前目录是否具有一第一笔数据。第一数据指派器224用以在目前目录具有第一笔数据时,以第一笔数据为目前数据。
参照图2,数据分析状态机240用以判断目前数据为文件或目录。找下一数据状态机260用以在目前数据为文件时执行。图4示出了找下一数据状态机260的方块图。同时参照图2以及图4,找下一数据状态机260包含下一数据判断器262、第二数据指派器264以及第一状态切换器266。下一数据判断器262用以判断目前数据是否具有一下一笔数据。第二数据指派器264用以在目前数据具有下一笔数据时,以下一笔数据为目前数据。第一状态切换器266用以在以下一笔数据为目前数据后,切换到数据分析状态机240。
图5示出了数据分析状态机240的方块图。同时参照图2以及图5,该数据分析状态机240可包含堆栈推入器242、目录指派器244以及第二状态切换器246。堆栈推入器242用以在目前数据为目录时,把目前目录的地址推入至一上一层目录地址堆栈270的顶端,作为一上一层目录地址。目录指派器244用以在把该目前目录的地址推入至该上一层目录地址堆栈的顶端后,以目前数据为目前目录。第二状态切换器246用以在以目前数据为目前目录后,切换到初次找数据状态机220。
此外,在图2中,该遍历目录的电子装置也可包含离开目录状态机280。离开目录状态机280用以在目前目录不具有第一笔数据或目前数据不具有下一笔数据时执行。图6示出了离开目录状态机280的方块图。同时参照图2以及图6,该离开目录状态机280包含堆栈判断器282、堆栈取出器284、第三数据指派器286、第二目录指派器288以及第三状态切换器290。堆栈判断器282用以判断上一层目录地址堆栈270的顶端是否具有上一层目录地址。堆栈取出器284用以在上一层目录地址堆栈270的顶端具有上一层目录地址时,从上一层目录地址堆栈270的顶端取出上一层目录地址。第三数据指派器286用以在取出上一层目录地址后,指派目前目录为目前数据。第二目录指派器288用以在指派目前目录为目前数据后,根据上一层目录地址,切换目前目录。第三状态切换器290用以在切换目前目录后,切换到找下一数据状态机。
另外,在图5中,数据分析状态机240可包含搜寻器248。搜寻器248用以把目前数据与一欲搜寻条件做比较。
此外,在图2中,该遍历目录的电子装置也可包含一显示元件300。该显示元件300用以显示目前数据。
由上述本发明实施例可知,应用本发明具有下列优点。本发明根据浏览状态、目前目录以及目前数据来遍历目录。因此,每执行完一个状态后,便可结束目前执行的指令,不需要把指令存储在内存中,而节省了内存空间。尤其在所遍历的目录越深层时,本发明所节省的内存空间越显着。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (6)

1.一种遍历电子装置目录的方法,其特征在于,包含:
当一浏览状态为一初次找数据状态时,判断一目前目录是否具有一第一笔数据;
当该目前目录具有该第一笔数据时,以该第一笔数据为一目前数据,并切换该浏览状态为一数据分析状态;
当该浏览状态为该数据分析状态时,判断该目前数据为文件或目录;
当该目前数据为文件时,切换该浏览状态为一找下一数据状态;
当该浏览状态为该找下一数据状态时,判断该目前数据是否具有一下一笔数据;
当该目前数据具有该下一笔数据时,以该下一笔数据为该目前数据,并切换该浏览状态为该数据分析状态;
当该目前数据为目录时,把该目前目录的地址推入至一上一层目录地址堆栈的顶端,作为一上一层目录地址;
在把该目前目录的地址推入至该上一层目录地址堆栈的顶端后,以该目前数据为该目前目录;
在以该目前数据为该目前目录后,切换该浏览状态为该初次找数据状态;
当该目前目录不具有该第一笔数据或该目前数据不具有该下一笔数据时,判断该上一层目录地址堆栈的顶端是否具有该上一层目录地址;
当该上一层目录地址堆栈的顶端具有该上一层目录地址时,从该上一层目录地址堆栈的顶端取出该上一层目录地址;
以该目前目录为该目前数据,并根据该上一层目录地址,切换该目前目录;以及
在切换该目前目录后,切换该浏览状态为该找下一数据状态。
2.根据权利要求1所述的方法,其特征在于,还包含:
当该浏览状态为该数据分析状态时,把该目前数据与一欲搜寻数据条件做比较。
3.根据权利要求2所述的方法,其特征在于,还包含:
当该目前数据符合该欲搜寻数据条件时,显示该目前数据。
4.根据权利要求1所述的方法,其特征在于,还包含:
当该浏览状态为该数据分析状态时,显示该目前数据。
5.一种遍历电子装置目录的装置,其特征在于,包含:
一初次找数据状态机,用以当一浏览状态为一初次找数据状态时执行,该初次找数据状态机包含:
一第一数据判断器,用以判断一目前目录是否具有一第一笔数据;
以及
一第一数据指派器,用以在该目前目录具有该第一笔数据时,以该第一笔数据为一目前数据,并切换该浏览状态为一数据分析状态;
一数据分析状态机,用以当该浏览状态为该数据分析状态时,判断该目前数据为文件或目录,该数据分析状态机包含:
一堆栈推入器,用以在该目前数据为目录时,把该目前目录的地址推入至一上一层目录地址堆栈的顶端,作为一上一层目录地址;
一第一目录指派器,用以在把该目前目录的地址推入至该上一层目录地址堆栈的顶端后,以该目前数据为该目前目录;以及
一第二状态切换器,用以在以该目前数据为该目前目录后,切换到该初次找数据状态机;
一找下一数据状态机,用以在该目前数据为文件时执行,且当该目前数据为文件时,切换该浏览状态为一找下一数据状态,且该找下一数据状态机包含:
一下一数据判断器,用以判断该目前数据是否具有一下一笔数据;
一第二数据指派器,用以在该目前数据具有该下一笔数据时,以该下一笔数据为该目前数据;以及
一第一状态切换器,用以在以该下一笔数据为该目前数据后,切换到该数据分析状态机;以及
一离开目录状态机,用以在该目前目录不具有该第一笔数据或该目前数据不具有该下一笔数据时执行,其中该离开目录状态机包含:
一堆栈判断器,用以判断该上一层目录地址堆栈的顶端是否具有该上一层目录地址;
一堆栈取出器,用以在该上一层目录地址堆栈的顶端具有该上一层目录地址时,从该上一层目录地址堆栈的顶端取出该上一层目录地址;
一第三数据指派器,用以在取出该上一层目录地址后,指派该目前目录为该目前数据;
一第二目录指派器,用以在指派该目前目录为该目前数据后,根据该上一层目录地址,切换该目前目录;以及
一第三状态切换器,用以在切换该目前目录后,切换到该找下一数据状态机。
6.根据权利要求5所述的装置,其特征在于,该数据分析状态机包含:
一搜寻器,用以把该目前数据与一欲搜寻条件做比较。
CN2008101674970A 2008-10-10 2008-10-10 遍历电子装置目录的方法及其装置 Expired - Fee Related CN101727448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101674970A CN101727448B (zh) 2008-10-10 2008-10-10 遍历电子装置目录的方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101674970A CN101727448B (zh) 2008-10-10 2008-10-10 遍历电子装置目录的方法及其装置

Publications (2)

Publication Number Publication Date
CN101727448A CN101727448A (zh) 2010-06-09
CN101727448B true CN101727448B (zh) 2011-11-02

Family

ID=42448351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101674970A Expired - Fee Related CN101727448B (zh) 2008-10-10 2008-10-10 遍历电子装置目录的方法及其装置

Country Status (1)

Country Link
CN (1) CN101727448B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825699A (zh) * 2019-11-08 2020-02-21 北京天地和兴科技有限公司 一种在c#程序中快速统计磁盘文件数量的方法
CN111400259B (zh) * 2020-03-24 2023-04-21 中孚信息股份有限公司 一种目录内容的遍历方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609826A (zh) * 2003-10-18 2005-04-27 鸿富锦精密工业(深圳)有限公司 遍历访问控制列表中许可权方法
CN1641569A (zh) * 2004-01-06 2005-07-20 英业达股份有限公司 Java小应用程序下插件功能的实现方法
CN1920816A (zh) * 2006-07-28 2007-02-28 珠海金山软件股份有限公司 Ntfs卷中从指定目录中搜索已删除文件的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609826A (zh) * 2003-10-18 2005-04-27 鸿富锦精密工业(深圳)有限公司 遍历访问控制列表中许可权方法
CN1641569A (zh) * 2004-01-06 2005-07-20 英业达股份有限公司 Java小应用程序下插件功能的实现方法
CN1920816A (zh) * 2006-07-28 2007-02-28 珠海金山软件股份有限公司 Ntfs卷中从指定目录中搜索已删除文件的方法

Also Published As

Publication number Publication date
CN101727448A (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
CN105045514B (zh) 一种应用进程管理方法及终端
CN106528894B (zh) 设置标签信息的方法及装置
CN103019609A (zh) 屏幕分区域显示的方法、装置及触屏终端
CN105787095A (zh) 互联网新闻的自动生成方法和装置
CN101853120A (zh) 一种应用程序的控制菜单的呈现方法、系统及移动终端
CN104035703A (zh) 改变视图显示的客户端、方法及系统
CN105868241A (zh) 数据加载方法及装置
CN106227887A (zh) 一种在浏览器新页面返回原页面的方法
CN102073526A (zh) 用于移动终端的软件转移安装方法及系统
CN103365637A (zh) 桌面图标管理方法和系统
CN103218555A (zh) 应用程序登录方法及装置
CN107025276A (zh) 一种信息查询方法及移动终端
CN103425382B (zh) 图标查找方法、装置及终端
CN101727448B (zh) 遍历电子装置目录的方法及其装置
CN103067576A (zh) 信息显示方法及设备
CN102929981A (zh) 多媒体扫描文件索引方法及装置
CN105554222A (zh) 一种控制方法及电子设备
CN105045928A (zh) 一种待清理数据展示方法、装置及电子设备
CN106020614A (zh) 一种应用程序的切换方法及终端
CN101087480A (zh) 一种移动终端的智能联想拨号方法
CN104035705A (zh) 切换视图显示模式的客户端、方法及系统
CN101692653B (zh) 路由表的管理方法和装置
CN106339235B (zh) 一种界面展示方法和装置
CN101726312B (zh) 兴趣点检索方法及装置
CN104346151B (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

Effective date of registration: 20170630

Address after: No. 2401, No. 371-1, China Education building, five mountain road, Guangzhou, Guangdong, Tianhe District

Patentee after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: Taipei City, Taiwan Chinese Shilin District Hougang Street No. sixty-six

Patentee before: Inventec Corporation

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

Inventor after: Liu Jingjing

Inventor after: Jia Jiaojiao

Inventor after: Guo Zhicai

Inventor after: Cao Sisi

Inventor after: Shao Zhongqing

Inventor after: Nie Xiufang

Inventor before: Li Yongxin

TR01 Transfer of patent right

Effective date of registration: 20170815

Address after: 300191 Nankai District, south red flag Road, Xinhua Building, building, floor, 7, Tianjin

Co-patentee after: Jia Jiaojiao

Patentee after: Liu Jingjing

Co-patentee after: Guo Zhicai

Co-patentee after: Cao Sisi

Co-patentee after: Shao Zhongqing

Co-patentee after: Nie Xiufang

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.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 301700, Tianjin, Wuqing District, Wuqing Development Zone, 20 Springs Road, Tianjin red pharmaceutical, Limited by Share Ltd

Co-patentee after: Jia Jiaojiao

Patentee after: Liu Jingjing

Co-patentee after: Guo Zhicai

Co-patentee after: Cao Sisi

Co-patentee after: Shao Zhongqing

Co-patentee after: Nie Xiufang

Address before: 300191 Nankai District, south red flag Road, Xinhua Building, building, floor, 7, Tianjin

Co-patentee before: Jia Jiaojiao

Patentee before: Liu Jingjing

Co-patentee before: Guo Zhicai

Co-patentee before: Cao Sisi

Co-patentee before: Shao Zhongqing

Co-patentee before: Nie Xiufang

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111102

Termination date: 20171010

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