FileSQL使用说明
作者:未知 来源:绿盟整理 发布时间:2010-2-26 20:44:28
作者:未知 来源:绿盟整理 发布时间:2010-2-26 20:44:28
1、FileSQL的目的 | |
2、FileSQL的特点 | |
3、使用方法 | |
4、对界面的简单说明 | |
5、FileSQL的原理 | |
6、关于表名里的开关选项 | |
7、关于执行效率 | |
8、注意事项 |
FileSQL软件介绍
这是专为习惯使用SQL的人打造的工具。
它把文件系统当作数据库
,把目录当作表,把目录下的文件和子目录当作数据记录……
它能建立目录间的“关系”,方便目录内容的对比;
它用order by来定义排序,十分灵活
下载地址 http://www.xdowns.com/soft/38/110/2010/Soft_58734.html
1、FileSQL的目的:
以SQL的方式搜索文件。
2、FileSQL的特点:
以SQL的方式,能提供足够灵活的查询;
它最大的特点是强调目录之间的关系,而一般的查询都是过滤性质的。
排序也是它的强项!
3、使用方法:
例1:
select *
from "E:\Tools\* /all" a
where a.filename like "ms%9"
找出E:\Tools下的文件或者文件(包括隐藏的、系统的),其名称以ms开头以9结尾
例2:
select a.*
from "E:\workshop\MiniSQL\*.pas" a,
"E:\workshop\备份MiniSQL\*.pas" b
where a.filename=b.filename and a.lastwritetime>b.lastwritetime
找出E:\workshop\MiniSQL中自上次更新以来变化的文件
例3:
select a.path,a.filename
from "F:\* /s" a,
where (a.extension='jpg' or a.extension='jif')
and a.file like '%家%' and a.creationtime<='2000-10-5'
and a.creationtime>='2000-10-1'
找出F盘上任何目录下的,以后缀是jpg或者jif的、文件名中包含'家'的,且创建日期在
2000-10-1~2000-10-5 的图片
例4:
select *
from "E:\workshop\* /all" a
order by extension,creationtime desc
找出E:\workshop目录下的全部文件或者目录,先以后缀排序,再以创建时间倒排
4、对界面的说明:
首先,可以在右边的编辑框中直接输入SQL语句
左边的树状视图,可以向其中增加目录(作为表),然后其中的内容可以拖放到右边,也可以右键"自动生成脚本"来产生SQL语句。
左边右键"编辑"可以设置表的开关选项,拖拽到右边或者"自动生成脚本"后以字符串的形式表现,注意观察可以很好的理解开关选项。
执行的结果,右键可"打开"、"定位"、"删除"等操作。
5、FileSQL的原理:
FileSQl把目录当作"表",把其下的文件或者子目录当作记录。只有一种数据结构:
path, string 文件的路径
filename, string 文件名称,不包含路径
extension, string 后缀
shortname, string 短名称
creationtime ,date 创建时间
lastwritetime, date 最后写入时间
lastaccesstime, date 最后访问时间
size, integer 文件大小
attri ,integer 文件属性
count,integer (如果是目录)包含的子目录个数
version,string 版本
isdir,boolean 目录否
readOnly,boolean 只读否
hidden,boolean 隐藏否
6、关于表名里的开关选项
开关选项有助于优化,能提高执行效率。比如:
select * from "e:\*.asp" a
比
select * from "e:\*.asp" a where a.extension='asp'
要快一些。
下面以目录c:\doc为例。(名词:"一般内容"指文件和目录,但不包括隐藏的、系统的、存档的)
c:\doc\*表示目录下的"一般内容"
c:\doc\* /s表示目录下的以及其子目录下的"一般内容"
c:\doc\*.asp表示目录下的后缀为asp的"一般内容"
c:\doc\w*.asp表示目录下的以w开头、后缀为asp的"一般内容"
c:\doc\* /all 表示目录下的文件和目录,包括隐藏的、系统的、存档的,所有的!
c:\doc\* /ad 表示目录下的所有子目录
c:\doc\* /ar 表示目录下的所有只读的文件或者子目录
c:\doc\* /ah 表示目录下的所有隐藏的文件或者子目录
c:\doc\* /as 表示目录下的所有系统的文件或者子目录
c:\doc\* /aa 表示目录下的所有存档的文件或者子目录
c:\doc\* /all/-ad 表示目录下的所有文件,包括系统的、隐藏的、存档的,但不包括目录
c:\doc\* /all/-ar 表示目录下的所有文件或者目录,包括系统的、隐藏的、存档的,但只读的除外
7、关于执行效率
执行效率主要依赖查询涉及到的文件个数,如果开关/s,可能会设计到很多很多文件,那将是很耗资源的。
另外,过滤的条件如果很多,将会产生很小的结果集,但不一定能提高效率。
如果在目录间关联,不正确的关联也可能产生"笛卡尔积",那往往是很大的结果。
8、注意事项:
如果执行的结果不包括filename和path的话,则右键"打开"、"定位"、"删除"等操作是无效的。
如果attr和isdir都不在结果集中,则不能正确显示文件夹或者文件图标。
---------------------------
yk@x-sql.net
www.x-sql.net
文章来自绿盟(xDowns.com)转载请注明来路。
上一篇文章:微软:Security Essentials 2010不是我们的杀软 []