CN103870588B - 一种在数据库中使用的方法及装置 - Google Patents
一种在数据库中使用的方法及装置 Download PDFInfo
- Publication number
- CN103870588B CN103870588B CN201410119463.XA CN201410119463A CN103870588B CN 103870588 B CN103870588 B CN 103870588B CN 201410119463 A CN201410119463 A CN 201410119463A CN 103870588 B CN103870588 B CN 103870588B
- Authority
- CN
- China
- Prior art keywords
- path
- fileinfo
- directory
- subdirectory
- data base
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000000203 mixture Substances 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式提供了一种在数据库中使用的方法。例如,该方法可以包括:将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,当访问指定目录路径下的所有文件和子目录时,查找出以指定目录路径为前缀的文件信息;遍历按预定顺序排序后的文件信息,通过分析指定目录路径后的目录分隔符,判断指定目录路径后是否包含子目录名;如包含,停止遍历,将指定目录路径后的第一个子目录名返回给用户,以及查找以指定目录路径为前缀、且指定目录路径后的字符串按预定顺序位于第一子目录名之后的文件信息,返回到排序的步骤;如不包含,将文件名返回给用户。此外,本发明的实施方式还提供了一种在数据库中使用的装置。
Description
技术领域
本发明的实施方式涉及计算机应用领域,更具体地,本发明的实施方式涉及一种在数据库中使用的方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目录,类似于文件系统中的文件夹,是一种常见的数据组织形式。文件和子目录通过存储在另一个目录中形成目录的树形结构。
为了便于用户对目录或文件进行访问,通常在数据库中用目录表来存储目录与目录之间的层级关系、用文件表来存储目录与文件之间的层级关系。当用户发出对目录或文件的访问命令时,可以按照目录的层级逐级访问数据库以查找出相关目录名或文件名返回给用户访问。其中,目录表中有用于存储目录名的字段、以及用于存储父目录名的字段;文件表中有用于存储文件名的字段、以及用于存储文件所在目录名的字段。
例如,如果要查找目录a/b下的文件c.txt时,可以先在数据库中查找是否存在父目录名为a的记录,再在数据库中查找父目录标识为a的记录中是否存在目录标识为b的记录,最后再在数据库中查找所在目录标识为b的记录中是否存在文件名为c.txt的记录,进而进行相关访问。
可见,当对数据库进行访问以查找指定目录下的文件时,现有技术对数据库的访问操作次数与文件所在目录的层级深度有关,当目录的层级越深时,对数据库的访问操作次数相应越多。
发明内容
但是,由于对数据库访问操作涉及到网络及硬盘的读写开销,因此,当目录层级深时,现有技术这种按照目录的层级逐级访问数据库的方式,对网络及硬盘的读写开销较大,无法满足高速访问的需要。
为此,非常需要一种在数据库中使用的方法,以实现高速访问的目的。
在本上下文中,本发明的实施方式期望提供一种在数据库中使用的方法及装置。
在本发明实施方式的第一方面中,提供了一种在数据库中使用的方法,例如,可以包括:将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,其中,所述完整目录路径为所述文件信息的前缀;获取用户的访问命令,当访问命令为访问指定目录路径下的所有文件和子目录时,在数据库的文件名字段中,查找出所有以指定目录路径为前缀的文件信息;对查找出的所有文件信息按照预定顺序进行排序;按预定顺序遍历排序后的文件信息,在遍历的过程中,通过分析指定目录路径后的字符串中的目录分隔符,判断当前遍历到的文件信息中指定目录路径后跟随的字符串中是否包含子目录名;如果包含,停止遍历,将当前遍历到的文件信息中指定目录路径后跟随的第一个子目录名返回给用户访问,以及查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,返回到所述对查找出的所有文件信息按照预定顺序进行排序的步骤;如果不包含,将该文件信息中指定目录路径后跟随的文件名返回给用户访问。
在本发明实施方式的第二方面中,提供了一种在数据库中使用的装置,例如,可以包括:存储单元,可以配置用于将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,其中,所述完整目录路径为所述文件信息的前缀;获取单元,可以配置用于获取用户的访问命令;查找单元,可以配置用于当访问命令为访问指定目录路径下的所有文件和子目录时,在数据库的文件名字段中,查找出所有以指定目录路径为前缀的文件信息;排序单元,可以配置用于对查找出的所有文件信息按照预定顺序进行排序;遍历单元,可以配置用于按预定顺序遍历排序后的文件信息,在遍历的过程中,通过分析指定目录路径后的字符串中的目录分隔符,判断当前遍历到的文件信息中指定目录路径后跟随的字符串中是否包含子目录名;第一返回单元,可以配置用于如果遍历单元判定为包含,触发遍历单元停止遍历,将当前遍历到的文件信息中指定目录路径后跟随的第一个子目录名返回给用户访问,以及查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,重新触发所述排序单元执行;第二返回单元,可以配置用于如果遍历单元判定为不包含,将该文件信息中指定目录路径后跟随的文件名返回给用户访问。
根据本发明实施例提供的在数据库中使用的方法及装置,由于将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段,对查找出的所有文件信息按照预定顺序进行排序,通过分析指定目录路径后的字符串中的目录分隔符判断文件信息中指定目录路径后跟随的字符串是否包含子目录名,在包含子目录名时将指定目录路径后的第一个子目录名返回给用户访问,并且通过查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,可以跳过该第一个子目录下无需返回的文件及下级子目录,减少遍历的数量,达到了提高访问速度的目的。进而,还可以使得用户大批量上传或下载指定文件时,仅需一次数据库访问操作即可,与指定文件所在目录的深度无关,能够实现高速存取吞吐量的访问。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1-1示意性地示出了根据本发明实施方式的应用场景;
图1-2示意性地示出了数据库文件名字段示意图;
图2示意性地示出了根据本发明实施方式的在数据库中使用的方法的流程示意图;
图3示意性地示出了根据本发明实施方式的在数据库中使用的方法的又一流程示意图;
图4示意性地示出了根据本发明实施方式的在数据库中使用的装置的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种在数据库中使用的方法及装置。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,当用户访问指定目录下的指定文件时,对数据库访问操作仅需一次,与目录的层级深度无关,可以满足高速访问的需要。
但是,如果将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,在用户需要对指定目录路径下的所有文件和子目录进行访问时,根据现有技术已知的方法,只能在数据库中遍历文件名字段中的所有记录才能找出指定目录路径下的所有文件和子目录,效率很低。因此,访问指定目录路径下的所有文件和子目录成为了提高访问速度的瓶颈。
针对这一问题,本发明人又发现在数据库的文件名字段中查找出所有以指定目录路径为前缀的文件信息后,可以对查找出的所有文件信息按照预定顺序进行排序。按预定顺序遍历排序后的文件信息,在遍历的过程中,可以通过分析指定目录路径后的字符串中的目录分隔符判断文件信息中指定目录路径后跟随的字符串中是否包含子目录名,从而在不包含子目录名时,可以判定该文件信息中指定目录路径后的字符串为文件名,将该文件信息或文件信息中的文件名返回给用户访问,在包含子目录名时将指定目录路径跟随子目录名的字符串、或子目录名返回给用户访问,并且通过查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,跳过该第一个子目录中无需返回的文件和下一级子目录,减少遍历的数量。因此,通过本发明的遍历方式,访问指定目录路径下的所有文件和子目录不再是提高访问速度的瓶颈。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
例如,在数据存储云平台的应用场景中,用户可以通过特定应用接口上传数据到云平台,通过特定应用接口从云平台下载数据,通过特定应用接口访问指定目录路径下的所有文件和子目录等。其中,云平台上的数据的文件信息(包含有完整目录路径以及文件名),可以存储在数据库的文件名字段中。如图1-1所示的目录结构,可以将包含有完整目录路径以及文件名的文件信息如“D:\我的文档\My eBooks\c.txt”、“D:\我的文档\MyeBooks\d.txt”等存储在如图1-2所示的数据库的文件名字段中。当用户通过特定应用接口对指定目录路径下的所有文件和子目录进行访问时,可以应用本发明实例提供的方法快速在数据库中查找出指定目录路径下的所有文件和子目录返回给用户访问,使得访问指定目录路径下的所有文件和子目录不再是提高访问速度的瓶颈。进而使得用户大批量上传或下载指定文件时,仅需一次数据库访问操作即可,与指定文件所在目录的深度无关,能够实现高速存取吞吐量的访问。
示例性方法
下面结合图1-1的应用场景,参考图2来描述根据本发明示例性实施方式的在数据库中使用的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
例如,参见图2,为本发明实施例提供的一种在数据库中使用的方法流程示意图之一。如图所示,本发明一种可能的实施方式可以包括:
S210、将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,其中,所述完整目录路径为所述文件信息的前缀;
其中,完整目录路径是指文件所在目录的完整路径。一条文件信息即为一个文件所在目录的完整路径以及该文件的文件名拼接形成的一个字符串。例如,如图1-1所示的文件c.txt的完整目录路径为“D:\我的文档\MyeBooks\”,包含有完整目录路径以及文件名的文件信息为字符串“D:\我的文档\My eBooks\c.txt”。
S220、获取用户的访问命令;
S230、当访问命令为访问指定目录路径下的所有文件和子目录时,在数据库的文件名字段中,查找出所有以指定目录路径为前缀的文件信息;
需要说明的是,指定目录路径下的所有文件和子目录指的是指定目录路径的当前目录层中的所有文件和子目录,并不包括指定目录路径下的子目录中的文件或下一级子目录。
例如,当访问命令为访问指定目录路径“D:\我的文档\My eBooks\”下的所有文件和子目录时,可以使用SQL语句“select name from表wherename like‘D:\我的文档\My eBooks\’”查找出所有以指定目录路径为前缀的文件信息。
需要说明的是,使用SQL语句查找出的执行结果可以为文件信息的列表。可以使用数据库的游标机制获取执行结果。游标是指为执行结果开设的数据缓冲区,用于存放SQL语句的执行结果。使用游标机制,所有的执行结果不必一次都返回给用户,用户可以用SQL语句逐条从数据缓冲区中获取执行结果。
S240、对查找出的所有文件信息按照预定顺序进行排序;
例如,对查找出的所有文件信息按照预定顺序进行排序可以与上述查找所有以指定目录路径为前缀的文件信息的步骤一起通过一条SQL语句实现,例如可以使用SQL语句“select name from表where name like‘D:\我的文档\My eBooks\’order by name”查找出所有以指定目录路径为前缀的文件信息,并同时对查找出的所有文件信息按照预定顺序进行排序。在采用游标机制的实现方式中,数据缓冲区中缓存的执行结果可以为已经排序的文件信息。
其中,所述预定顺序可以根据实施需要设置,在本发明中并不进行限制。例如,所述预定顺序可以为字典序。例如,在程序中,字典序可以是指按照字符的ASCII码的大小排序。如,0~9对应的ASCII码为48~59,A~Z对应的ASCII码为65~90,a~z对应的ASCII码为97~122,等等。可以通过比较所查找出的文件信息字符串的ASCII码的大小,按照ASCII码从小到大或者从大到小的顺序,对查找出的所有文件信息进行排序。例如,如图1-2所示的文件信息按照ASCII码从小到大的顺序,得到的以文件信息为字符串的列表的顺序为:
“D:\我的文档\My eBooks\c.txt”
“D:\我的文档\My eBooks\d.txt”
“D:\我的文档\My eBooks\e\...省略…”
“D:\我的文档\My eBooks\e\...省略…”
“D:\我的文档\My eBooks\f.txt”。
S250、按预定顺序遍历排序后的文件信息,在遍历的过程中,通过分析指定目录路径后的字符串中的目录分隔符,判断当前遍历到的文件信息中指定目录路径后跟随的字符串是否包含子目录名;
需要说明的是,在本发明实施例中,判断当前遍历到的文件信息中指定目录路径后跟随的字符串是否包含子目录名的原因在于:子目录中的文件或下一级子目录无需返回给用户,如果有子目录名,返回子目录名给用户访问即可,如果没有子目录名,则说明该文件信息中指定目录路径下直接是文件,返回文件名给用户访问即可。可见,在有子目录名的情况下,继续针对包含子目录的文件信息进行遍历没有实际意义,因此,需要对是否包含子目录名进行判断。
例如,如果指定目录路径结尾字符不是目录分隔符,则指定目录路径后的字符串的第一个字符一定是目录分隔符,此时,可以通过分析出指定目录路径后的字符串中不包含两个目录分隔符,判断出当前遍历到的文件信息中指定目录路径后跟随的字符串不包含子目录名;可以通过分析出指定目录路径后的字符串中包含两个或两个以上目录分隔符,判断出当前遍历到的文件信息中指定目录路径后跟随的字符串包含子目录名。
再例如,如果指定目录路径结尾字符是目录分隔符,则指定目录路径后的字符串的第一个字符一定不是目录分隔符,此时,可以通过分析出指定目录路径后的字符串中不包含目录分隔符,判断出当前遍历到的文件信息中指定目录路径下不包含子目录名;可以通过分析出指定目录路径后的字符串中包含目录分隔符,判断出当前遍历到的文件信息中指定目录路径后跟随的字符串包含子目录名。
例如,对于文件信息“D:\我的文档\My eBooks\c.txt”,通过分析出指定目录路径“D:\我的文档\My eBooks\”后的字符串“c.txt”中,不存在目录分隔符判断出当前遍历到的文件信息中指定目录路径后跟随的字符串不包含子目录名;对于文件信息“D:\我的文档\My eBooks\e\...省略…”,通过分析指定目录路径“D:\我的文档\My eBooks\”后的字符串“e\...省略…”中,存在目录分隔符“\”,判断出当前遍历到的文件信息中指定目录路径后跟随的字符串包含子目录名。
S260、如果包含,停止遍历,将当前遍历到的文件信息中指定目录路径后跟随的第一个子目录名返回给用户访问,以及查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一个子目录名之后的所有文件信息,返回到所述对查找出的所有文件信息按照预定顺序进行排序的步骤;
在该步骤中,通过查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,可以跳过包含所述第一个子目录中的文件及第一个子目录的下一级子目录的文件信息,减少遍历的数量,达到提高访问速度的目的。
在采用游标机制的实现方式中,数据缓冲区中可以缓存有按预定顺序已排序的文件信息的列表。对文件信息进行遍历时,可以从数据缓冲区中按预定顺序逐条获取文件信息,针对当前获取的一条文件信息进行指定目录路径之后跟随的字符串是否包含子目录名的分析判断,当判定存在子目录名而需要停止遍历时,可以停止从数据缓冲区中获取文件信息从而停止遍历。在查找出以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息后,数据缓冲区中的执行结果为新查找出的结果。
例如,如果所述预定顺序为字典序,则可以查找出所有以指定目录路径为前缀的文件信息中,其指定目录路径后跟随的字符串按字典序大于等于所述第一个子目录名的下一个字符串的文件信息,从而查找出以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息。
更具体地,例如,所述查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息的步骤,以及之后所返回的对查找出的所有文件信息按照预定顺序进行排序的步骤可以一起通过一条SQL语句实现。例如,在如图1-2所示的数据库的表中,判断出文件信息“D:\我的文档\My eBooks\e\...省略…”中指定目录路径“D:\我的文档\My eBooks\”后跟随的字符串包含子目录名e,则可以使用SQL语句“select name from表where name>=‘D:\我的文档\My eBooks\f’order by name”查找出所有以指定目录路径为前缀的文件信息中,其指定目录路径后跟随的字符串按字典序大于等于所述第一个子目录名的下一个字符串的文件信息,并同时对查找出的所有文件信息按照字典序进行排序。
S270、如果不包含,将该文件信息中指定目录路径后跟随的文件名返回给用户访问。
例如,如果当前遍历到的文件信息为“D:\我的文档\My eBooks\c.txt”,则可以将指定目录路径“D:\我的文档\My eBooks\”后跟随的文件名“c.txt”返回给用户访问,或将指定目录路径“D:\我的文档\My eBooks\”及其跟随的文件名“c.txt”返回给用户访问。
可见,应用本发明实施例提供的方法,由于将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段,当用户需要对指定目录路径下的所有文件和子目录进行访问时,可以在文件名字段查找出所有以指定目录路径为前缀的文件信息,并对查找出的所有文件信息按照预定顺序进行排序,通过分析指定目录路径后的字符串中的目录分隔符判断文件信息中指定目录路径后跟随的字符串是否包含子目录名,从而在不包含子目录名时,可以判定该文件信息中指定目录路径后的字符串为文件名,将该文件信息或文件信息中的文件名返回给用户访问,在包含子目录名时将指定目录路径后的第一个子目录名返回给用户访问,并且通过查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,可以跳过该第一个子目录下无需返回的文件及下级子目录,减少遍历的数量,达到提高访问速度的目的。
在本发明实施例中,所述访问命令还可以包括其他访问命令,例如,对指定文件信息的读访问或写访问等。如图3所示,为本发明实施例提供的一种在数据库中使用的方法流程示意图之二。
如图3所示,本发明另一种可能的实施方式可以还包括:
S221、当访问命令为对指定文件信息的读访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;
例如,所述对指定文件信息的读访问可以是用户下载指定文件信息所指向的文件的访问命令。当用户发出下载指定目录路径D:\我的文档\MyeBooks\下的文件c.txt的访问命令时,可以在数据库的文件名字段中查找是否存在指定文件信息“D:\我的文档\My eBooks\c.txt”,如果存在,则可以将c.txt这个文件名返回给用户,并可以开始对c.txt所对应的文件的下载过程。
S222、如果存在,将所述指定文件信息返回给用户访问;另外,如果不存在,还可以返回空或向用户反馈不存在指定文件信息所指向的文件的消息。
如图3所示,本发明又一种可能的实施方式还可以包括:
S223、当访问命令为对指定文件信息的写访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;
例如,当访问命令为写访问时,所述写访问指定的文件信息中的目录分隔符无需指定;当访问命令为访问指定目录路径下的所有文件和子目录时,可以根据用户指定的目录分隔符确定文件信息中用于划分各级目录、目录与文件的目录分隔符。例如,用户在写访问时,写入数据库文件名字段中的文件信息没有指定目录分隔符,当访问指定目录路径下的所有文件和子目录时,如果用户使用的操作系统为windows,可以根据windows操作系统对应的目录分隔符为“\”指定目录分隔符为“\”,如果用户使用的操作系统为linux,可以根据linux操作系统对应的目录分隔符为“/”指定目录分隔符为“/”。该实现方式可以使应用本发明实例的操作系统不受限制,更加灵活。
例如,所述对指定文件信息的写访问可以是用户上传指定文件信息所指向的文件的访问命令。例如,当用户发出上传文件c.txt到指定目录路径D:\我的文档\My eBooks\的访问命令时,可以在数据库的文件名字段中查找是否存在指定文件信息“D:\我的文档\My eBooks\c.txt”,如果不存在,则可以将指定文件信息“D:\我的文档\My eBooks\c.txt”写入数据库的文件名字段,并可以开始对c.txt所对应的文件上传到D:\我的文档\My eBooks\的上传过程。
S224、如果不存在,将所述指定文件信息写入数据库的文件名字段;另外,如果存在,可以向用户返回重名错误。
需要注意的是,步骤S221-S224在图3中用虚线绘制,以表示这些步骤不是本发明的必要步骤。当然,在具有步骤S221-S224的情况下,本发明的实施方式可以当用户对指定文件信息所指向的文件进行读访问或写访问时,对数据库的访问操作仅需一次,与目录的层级深度无关,可以满足高速访问的需要。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的在数据库中使用的装置进行介绍。
例如,参见图4,为本发明实施例提供的一种在数据库中使用的装置的结构示意图。如图所示,该装置一种可能的实施方式可以包括:存储单元410,可以配置用于将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,其中,所述完整目录路径为所述文件信息的前缀;获取单元420,可以配置用于获取用户的访问命令;查找单元430,可以配置用于当访问命令为访问指定目录路径下的所有文件和子目录时,在数据库的文件名字段中,查找出所有以指定目录路径为前缀的文件信息;排序单元440,可以配置用于对查找出的所有文件信息按照预定顺序进行排序;其中,所述预定顺序可以根据实施需要设置,在本发明中并不进行限制。例如,所述预定顺序可以为字典序。
还可以包括遍历单元450,可以配置用于按预定顺序遍历排序后的文件信息,在遍历的过程中,通过分析指定目录路径后的字符串中的目录分隔符,判断当前遍历到的文件信息中指定目录路径后跟随的字符串中是否包含子目录名;第一返回单元460,可以配置用于如果遍历单元判定为包含,触发遍历单元停止遍历,将当前遍历到的文件信息中指定目录路径后跟随的第一个子目录名返回给用户访问,以及查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,重新触发所述排序单元执行;第二返回单元470,可以配置用于如果遍历单元判定为不包含,将该文件信息中指定目录路径后跟随的文件名返回给用户访问。
应用本发明实施例提供的装置,由于排序单元440在文件名字段查找出所有以指定目录路径为前缀的文件信息,并对查找出的所有文件信息按照预定顺序进行排序,遍历单元450通过分析指定目录路径后的字符串中的目录分隔符判断文件信息中指定目录路径后跟随的字符串是否包含子目录名,从而第二返回单元470在不包含子目录名时,可以判定该文件信息中指定目录路径后的字符串为文件名,将该文件信息或文件信息中的文件名返回给用户访问,第一返回单元460在包含子目录名时将指定目录路径后的第一个子目录名返回给用户访问,并且通过查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一子目录名之后的所有文件信息,可以跳过该第一个子目录下无需返回的文件及下级子目录,减少遍历单元450遍历的数量,达到提高访问速度的目的。
在本发明实施例中,所述访问命令还可以包括其他访问命令。
例如,如图4所示,本发明实施例另一种可能的实施方式还可以包括:第一判断单元421,可以配置用于当访问命令为对指定文件信息的读访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;读取单元422,可以配置用于如果第一判断单元判定为存在,将所述指定文件信息返回给用户访问。例如,所述对指定文件信息的读访问可以是用户下载指定文件信息所指向的文件的访问命令。读取单元422可以将所述指定文件信息返回给用户访问,并可以开始对所述指定文件信息的下载过程。
再例如,如图4所示,本发明实施例又一种可能的实施方式还可以包括:第二判断单元423,可以配置用于当访问命令为对指定文件信息的写访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;写入单元424,可以配置用于如果第二判断单元判定为不存在,将所述指定文件信息写入数据库的文件名字段。例如,所述对指定文件信息的写访问可以是用户上传文件到指定文件信息所指向的目录的访问命令。写入单元422可以将指定文件信息写入数据库的文件名字段,并可以开始上传过程。
在一种可能的实现方式中,当访问命令为写访问时,所述写访问指定的文件信息中的目录分隔符无需指定,相应地,如图4所示,该装置还可以包括,目录分隔符确定单元425,可以配置用于当访问命令为访问指定目录路径下的所有文件和子目录时,根据用户指定的目录分隔符确定文件信息中用于划分各级目录、目录与文件的目录分隔符。该实现方式可以使应用本发明实例的操作系统不受限制,更加灵活。
可见,应用本发明实施例提供的装置,当用户对指定文件信息所指向的文件进行读访问或写访问时,对数据库的访问操作仅需一次,与目录的层级深度无关,可以满足高速访问的需要。
需要注意的是,第一判断单元421、读取单元422、第二判断单元423、写入单元424、目录分隔符确定单元425在图4中用虚线绘制,以表示这些单元或子单元不是本发明装置的必要单元。
应当注意,尽管在上文详细描述中提及了在数据库中使用的装置的单元或子单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (9)
1.一种在数据库中使用的方法,包括:
将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,其中,所述完整目录路径为所述文件信息的前缀;
获取用户的访问命令,当访问命令为访问指定目录路径下的所有文件和子目录时,在数据库的文件名字段中,查找出所有以指定目录路径为前缀的文件信息;
对查找出的所有文件信息按照预定顺序进行排序;
按预定顺序遍历排序后的文件信息,在遍历的过程中,通过分析指定目录路径后的字符串中的目录分隔符,判断当前遍历到的文件信息中指定目录路径后跟随的字符串中是否包含子目录名;
如果包含,停止遍历,将当前遍历到的文件信息中指定目录路径后跟随的第一个子目录名返回给用户访问,以及查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一个子目录名之后的所有文件信息,返回到所述对查找出的所有文件信息按照预定顺序进行排序的步骤;
如果不包含,将该文件信息中指定目录路径后跟随的文件名返回给用户访问。
2.根据权利要求1所述的方法,还包括:
当访问命令为对指定文件信息的读访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;
如果存在,将所述指定文件信息返回给用户访问。
3.根据权利要求1所述的方法,还包括:
当访问命令为对指定文件信息的写访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;
如果不存在,将所述指定文件信息写入数据库的文件名字段。
4.根据权利要求3所述的方法,其中,当访问命令为写访问时,所述写访问指定的文件信息中的目录分隔符无需指定;
当访问命令为访问指定目录路径下的所有文件和子目录时,根据用户指定的目录分隔符确定文件信息中用于划分各级目录、目录与文件的目录分隔符。
5.根据权利要求1所述的方法,其中,所述预定顺序为字符字典序。
6.一种在数据库中使用的装置,包括:
存储单元,配置用于将包含有完整目录路径以及文件名的文件信息存储在数据库的文件名字段中,其中,所述完整目录路径为所述文件信息的前缀;
获取单元,配置用于获取用户的访问命令;
查找单元,配置用于当访问命令为访问指定目录路径下的所有文件和子目录时,在数据库的文件名字段中,查找出所有以指定目录路径为前缀的文件信息;
排序单元,配置用于对查找出的所有文件信息按照预定顺序进行排序;
遍历单元,配置用于按预定顺序遍历排序后的文件信息,在遍历的过程中,通过分析指定目录路径后的字符串中的目录分隔符,判断当前遍历到的文件信息中指定目录路径后跟随的字符串中是否包含子目录名;
第一返回单元,配置用于如果遍历单元判定为包含,触发遍历单元停止遍历,将当前遍历到的文件信息中指定目录路径后跟随的第一个子目录名返回给用户访问,以及查找以指定目录路径为前缀、且所述指定目录路径后跟随的字符串按预定顺序位于所述第一个子目录名之后的所有文件信息,重新触发所述排序单元执行;
第二返回单元,配置用于如果遍历单元判定为不包含,将该文件信息中指定目录路径后跟随的文件名返回给用户访问。
7.根据权利要求6所述的装置,还包括:
第一判断单元,配置用于当访问命令为对指定文件信息的读访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;
读取单元,配置用于如果第一判断单元判定为存在,将所述指定文件信息返回给用户访问。
8.根据权利要求6所述的装置,还包括:
第二判断单元,配置用于当访问命令为对指定文件信息的写访问时,判断在数据库的文件名字段中是否存在所述指定文件信息;
写入单元,配置用于如果第二判断单元判定为不存在,将所述指定文件信息写入数据库的文件名字段。
9.根据权利要求8所述的装置,其中,当访问命令为写访问时,所述写访问指定的文件信息中的目录分隔符无需指定;
且还包括,目录分隔符确定单元,配置用于当访问命令为访问指定目录路径下的所有文件和子目录时,根据用户指定的目录分隔符确定文件信息中用于划分各级目录、目录与文件的目录分隔符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410119463.XA CN103870588B (zh) | 2014-03-27 | 2014-03-27 | 一种在数据库中使用的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410119463.XA CN103870588B (zh) | 2014-03-27 | 2014-03-27 | 一种在数据库中使用的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103870588A CN103870588A (zh) | 2014-06-18 |
CN103870588B true CN103870588B (zh) | 2016-08-31 |
Family
ID=50909118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410119463.XA Active CN103870588B (zh) | 2014-03-27 | 2014-03-27 | 一种在数据库中使用的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870588B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786916B (zh) * | 2014-12-26 | 2019-11-12 | 中国电信股份有限公司 | 一种基于大容量表的分层目录的存储方法及系统 |
CN105653617B (zh) * | 2015-12-22 | 2019-02-26 | 广州视源电子科技股份有限公司 | 多媒体文件管理器快速显示文件的方法及系统 |
CN105701156B (zh) * | 2015-12-29 | 2019-06-14 | 青岛海信网络科技股份有限公司 | 一种分布式文件系统管理方法及装置 |
CN106909668B (zh) * | 2017-02-28 | 2020-04-10 | 武汉斗鱼网络科技有限公司 | 一种基于网址解析的文件查找方法及系统 |
CN110709824B (zh) * | 2018-02-05 | 2022-01-14 | 华为技术有限公司 | 一种数据查询方法及装置 |
CN110569219B (zh) * | 2019-09-02 | 2023-05-12 | 深信服科技股份有限公司 | 分片垃圾处理方法、用户设备、存储介质及装置 |
CN110928498B (zh) * | 2019-11-15 | 2023-11-10 | 浙江大华技术股份有限公司 | 一种目录遍历的方法、装置、设备和存储介质 |
CN111045991B (zh) * | 2019-12-02 | 2023-03-21 | 深圳市鼎泰富科技有限公司 | 一种基于命令行模式快速打开文件的实现方法 |
CN111813750A (zh) * | 2020-06-25 | 2020-10-23 | 刘坤 | 一种cad协同软件提资和绑定的方法 |
CN115034770A (zh) * | 2022-08-12 | 2022-09-09 | 平安银行股份有限公司 | 一种争议清算文件调度方法及装置 |
CN116821437B (zh) * | 2023-08-30 | 2023-11-07 | 英诺达(成都)电子科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545047A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种存储虚拟化系统的元数据层次管理方法及其系统 |
CN101207569A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 用于确定计算机网络上的通信路径的设备和方法 |
CN101681304A (zh) * | 2007-06-20 | 2010-03-24 | 富士通株式会社 | 高速缓冲存储器控制装置及流水线控制方法 |
-
2014
- 2014-03-27 CN CN201410119463.XA patent/CN103870588B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545047A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种存储虚拟化系统的元数据层次管理方法及其系统 |
CN101207569A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 用于确定计算机网络上的通信路径的设备和方法 |
CN101681304A (zh) * | 2007-06-20 | 2010-03-24 | 富士通株式会社 | 高速缓冲存储器控制装置及流水线控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103870588A (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103870588B (zh) | 一种在数据库中使用的方法及装置 | |
JP6006267B2 (ja) | 索引キーを使用して検索を絞込むシステムおよび方法 | |
CN105574093B (zh) | 一种在基于HDFS的spark-sql大数据处理系统上建立索引的方法 | |
CN106663056B (zh) | 文件系统中的元数据索引搜索 | |
US11169978B2 (en) | Distributed pipeline optimization for data preparation | |
US9575976B2 (en) | Methods and apparatuses to optimize updates in a file system based on birth time | |
CN103581331B (zh) | 虚拟机在线迁移方法与系统 | |
US20150310035A1 (en) | Fair sampling in a hierarchical filesystem | |
US20090276698A1 (en) | Document Synchronization Over Stateless Protocols | |
AU2011227327B2 (en) | Indexing and searching employing virtual documents | |
JP2005122702A5 (zh) | ||
EP3362916B1 (en) | Signature-based cache optimization for data preparation | |
CN108762808B (zh) | 接口文档的生成方法及系统 | |
US20140046928A1 (en) | Query plans with parameter markers in place of object identifiers | |
JP2015530629A (ja) | 移行先ファイルサーバ及びファイルシステム移行方法 | |
CN104679847B (zh) | 一种构建在线实时更新海量音频指纹库的方法和设备 | |
CN102520995B (zh) | 软件远程流式加载方法及系统 | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及系统 | |
US10949385B2 (en) | Hybrid metadata and folder based file access | |
US9824104B2 (en) | System and method for content storage | |
US10642815B2 (en) | Step editor for data preparation | |
CN103257971B (zh) | 终端和文件管理方法 | |
EP4064070A1 (en) | Cache optimization for data preparation | |
JP2007287147A (ja) | 高速ファイル属性検索 | |
KR101272656B1 (ko) | 태그 기반 파일 관리 방법 및 그 시스템 |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd. Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd. |
|
CP01 | Change in the name or title of a patent holder |