IDL中File_Search函数用法详解
分享
在利用IDL进行批处理时,通常用到file_search函数进行输入路径文件的搜索,现根据IDL帮助和测试,总结用法如下。
补充更新内容:
搜索'F:\testpath'中根目录下的所有文件
方法1:利用CD命令,把要搜索的目标路径修改为当前路径,示例如下:
IDL> CD, 'F:\TestPath'
IDL> print, file_search('*.*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
方法2:File_Search输入参数为“路径+适配符”
IDL> print, file_search('F:\TestPath\*.*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
方法3:方法2中存在弊端,搜索结果不包含无后缀文件,改进如下:
IDL> print, file_search('F:\TestPath\*', /TEST_REGULAR)
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
注:如果不加/TEST_REGULAR关键字,会把路径下的文件夹也搜索出来,如下所示:
IDL> print, file_search('F:\TestPath\*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹
总结:
l 使用‘*.*’只能搜到带后缀文件;
l 使用‘*’会同时搜到文件夹路径,加入/TEST_REGULAR关键字,可以控制结果只有文件。
搜索'F:\testpath'中所有文件和文件夹
IDL> print, file_search('F:\TestPath','*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹
F:\TestPath\一级文件夹\二级文件.bmp
F:\TestPath\一级文件夹\二级文件夹
F:\TestPath\一级文件夹\二级文件夹\三级文件.jnt
搜索所有文件,包含子文件夹下的
IDL> print, file_search('F:\TestPath','*.*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹\二级文件.bmp
F:\TestPath\一级文件夹\二级文件夹\三级文件.jnt
搜索特定后缀文件
IDL> print, file_search('F:\testpath', '*.bmp')
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件夹\二级文件.bmp
只搜索文件夹路径,关键字/test_directory
IDL> print, file_search('F:\testpath', '*', /test_directory)
F:\TestPath\一级文件夹
F:\TestPath\一级文件夹\二级文件夹
搜索指定开头字符的文件
a) 搜索开头字符a~c的文件
IDL> print, file_search('F:\TestPath','[a-c]*')
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\c开头文件.jnt
b) 搜索开头字符为a、c的文件
IDL> print, file_search('F:\TestPath','[a,c]*')
F:\TestPath\a开头文件.pptx
F:\TestPath\c开头文件.jnt
搜索指定一系列后缀名的文件,bmp和txt之间不能有空格
IDL> print, file_search('F:\TestPath','/*.{bmp,txt}')
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹\二级文件.bmp
搜索含有Windows短后缀名的文件,例如pptx(ppt)
IDL> print, file_search('F:\TestPath\','*.ppt', /windows_short_names)
F:\TestPath\a开头文件.pptx
搜索可执行文件,即exe文件
IDL> print, file_search('F:\TestPath', '*.*', /test_executable)
F:\TestPath\一级文件夹\二级可执行文件.exe
文章来源:http://blog.sina.com.cn/s/blog_764b1e9d01014ajp.html
补充更新内容:
搜索'F:\testpath'中根目录下的所有文件
方法1:利用CD命令,把要搜索的目标路径修改为当前路径,示例如下:
IDL> CD, 'F:\TestPath'
IDL> print, file_search('*.*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
方法2:File_Search输入参数为“路径+适配符”
IDL> print, file_search('F:\TestPath\*.*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
方法3:方法2中存在弊端,搜索结果不包含无后缀文件,改进如下:
IDL> print, file_search('F:\TestPath\*', /TEST_REGULAR)
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
注:如果不加/TEST_REGULAR关键字,会把路径下的文件夹也搜索出来,如下所示:
IDL> print, file_search('F:\TestPath\*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹
总结:
l 使用‘*.*’只能搜到带后缀文件;
l 使用‘*’会同时搜到文件夹路径,加入/TEST_REGULAR关键字,可以控制结果只有文件。
搜索'F:\testpath'中所有文件和文件夹
IDL> print, file_search('F:\TestPath','*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹
F:\TestPath\一级文件夹\二级文件.bmp
F:\TestPath\一级文件夹\二级文件夹
F:\TestPath\一级文件夹\二级文件夹\三级文件.jnt
搜索所有文件,包含子文件夹下的
IDL> print, file_search('F:\TestPath','*.*')
F:\TestPath\C开头文件.jnt
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹\二级文件.bmp
F:\TestPath\一级文件夹\二级文件夹\三级文件.jnt
搜索特定后缀文件
IDL> print, file_search('F:\testpath', '*.bmp')
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件夹\二级文件.bmp
只搜索文件夹路径,关键字/test_directory
IDL> print, file_search('F:\testpath', '*', /test_directory)
F:\TestPath\一级文件夹
F:\TestPath\一级文件夹\二级文件夹
搜索指定开头字符的文件
a) 搜索开头字符a~c的文件
IDL> print, file_search('F:\TestPath','[a-c]*')
F:\TestPath\a开头文件.pptx
F:\TestPath\b开头文件.bmp
F:\TestPath\c开头文件.jnt
b) 搜索开头字符为a、c的文件
IDL> print, file_search('F:\TestPath','[a,c]*')
F:\TestPath\a开头文件.pptx
F:\TestPath\c开头文件.jnt
搜索指定一系列后缀名的文件,bmp和txt之间不能有空格
IDL> print, file_search('F:\TestPath','/*.{bmp,txt}')
F:\TestPath\b开头文件.bmp
F:\TestPath\一级文件.txt
F:\TestPath\一级文件夹\二级文件.bmp
搜索含有Windows短后缀名的文件,例如pptx(ppt)
IDL> print, file_search('F:\TestPath\','*.ppt', /windows_short_names)
F:\TestPath\a开头文件.pptx
搜索可执行文件,即exe文件
IDL> print, file_search('F:\TestPath', '*.*', /test_executable)
F:\TestPath\一级文件夹\二级可执行文件.exe
文章来源:http://blog.sina.com.cn/s/blog_764b1e9d01014ajp.html
0 个评论
相关问题
- Engine调用GP工具的两种方式的用法
- c# IFeatureClass.Search超出系统资源
- 调用arcpy.SelctLayerByAttribute函数出现问题!
- Cityengine中,在坡面上直接生成的建筑是倾斜的,请问要用什么函数使建筑保持水平。
- 在CityEngine的CGA代码中 p() 函数是什么意思?
- arcgis10.2为何没有similarity search这个功能?
- semi-variogram 半变异函数 均匀成层土的大致形状
- 求助大神!用ArcGIS做城市空间经济联系图,显示:ERROR 999999: 执行函数时出错。 执行(XYToLine)失败。
- ArcGIS API for JavaScript 4.9中 “Search”类 增加了下图的图层下拉菜单,想去掉!
- graphic中 fromJSON的正确用法是什么?
- lmgrd中始终显示invalid license file