IDL使用file_search函数遍历某个文件夹下的所有文件

写IDL程序的时候经常遇到需要读取某个目录下的所有文件,如果文件过多,挨个写会很麻烦,这时候可以使用file_search函数来遍历整个文件夹。

示例:

filearr = file_search('d:\file\','*.gz',count=num);

说明:

filearr是一个数组,里面存放着 d:\file\ 目录中所有的后缀名为.gz的文件的详细路径。

详细的方法可以使用IDL自带的help,下面是详细的使用示例:

  • 搜索当前目录下的所有文件
IDL>;获得当前工作目录
IDL> cd,current = workDir
IDL>;输出查看工作目录
IDL> print,workDir
C:\Users\Administrator
IDL>;搜索工作目录下的所有文件,统计结果到变量num中
IDL> r = file_search(count = num)
IDL>;查看统计个数
IDL> print,num
30
IDL>;各文件名称以字符串方式存储在返回值r中
IDL> help,r
R STRING = Array[30]
  • 搜索文件夹“c:\temp”下的所有文件和文件夹;
IDL> r = file_search('c:\temp','*',count = num)
IDL>;查看统计个数
IDL> print,num
8
IDL>;输出完整路径名
IDL> print,r
C:\temp\a.txt C:\temp\aaa.pro C:\temp\aba.pro C:\temp\文件夹1 C:\temp\文件夹1\c.pro C:\temp\文件夹1\d.pro
C:\temp\文件夹1\文件夹2 C:\temp\文件夹1\文件夹2\e.pro
  • 搜索文件夹“c:\temp”下的所有文件,不包含文件夹;
IDL> r = file_search('c:\temp','*',count = num,/test_regular)
IDL>;查看统计个数
IDL> print,num
6
IDL>;输出完整路径名
IDL> print,r
C:\temp\aaa.pro C:\temp\aba.pro C:\temp\可执行.exe C:\temp\文件夹1\c.pro C:\temp\文件夹1\d.pro C:\temp\文件夹1\文件夹2\e.pro
  • 搜索文件夹“c:\temp”下的所有文件夹,不包含文件;
IDL> r = file_search('c:\temp','*',count = num,/test_directory)
IDL>;查看统计个数
IDL> print,num
2
IDL> print,r
C:\temp\文件夹1 C:\temp\文件夹1\文件夹2
  • 搜索文件夹“c:\temp”中的所有文件,不搜索子目录;
IDL> r = file_search('*',count = num,/test_regular)
IDL>;查看统计个数
IDL> print,num
3
IDL> print,r
aaa.pro aba.pro 可执行.exe
  • 搜索文件夹“c:\temp”中的所有可执行文件(Windows下文件后缀为exe);
IDL> r = file_search('*',count = num,/test_executable,/test_regular)
IDL>;查看统计个数
IDL> print,num
1
IDL> print,r
可执行.exe
  • 搜索文件夹“c:\temp”中的扩展名为“.pro”的文件;
IDL> r = file_search('*.pro',count = num,/test_regular)
IDL>;查看统计个数
IDL> print,num
2
IDL> print,r
aaa.pro aba.pro
  • 搜索文件夹“c:\temp”中的名称中含有“b”的所有文件;
IDL> r = file_search('*b*',count = num,/test_regular)
IDL>;查看统计个数
IDL> print,num
1
IDL> print,r
aba.pro

参考:http://blog.sciencenet.cn/blog-344887-630319.html

河流的制图综合 IDL文件读写中关于设备号的问题

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论