“soil_moist_0_100_2022_01_01”到“soil_moist_0_100_2022_12_31”一共有365个文件,想要用idl程序中的file_search筛选出指定日期,如2022_01_11到2022_06_06之间的文件
时间: 2023-09-12 07:12:31 浏览: 74
可以尝试以下代码:
```idl
; 要搜索的文件路径
filepath = 'C:\data\soil_moist_0_100_'
; 起始日期和结束日期
start_date = '2022_01_11'
end_date = '2022_06_06'
; 获取起始日期和结束日期的时间戳
start_timestamp = string2timestamp(start_date + '_00:00:00', 'yyyy_mm_dd_hh:mm:ss')
end_timestamp = string2timestamp(end_date + '_23:59:59', 'yyyy_mm_dd_hh:mm:ss')
; 初始化结果数组
result = []
; 遍历每一个日期,查找符合条件的文件
for i=0, 364 do begin
curr_date = string(i+1, format='(I3)')
curr_filename = filepath + curr_date + '.dat'
curr_timestamp = file_info(curr_filename, /MODIFY_T).modify_timestamp
if ((curr_timestamp ge start_timestamp) and (curr_timestamp le end_timestamp)) then result = [result, curr_filename]
endfor
; 输出结果
print, result
```
这段代码会遍历所有的文件,逐个检查文件的修改时间是否在指定日期范围内,如果是则将文件路径添加到结果数组中。最后输出结果数组。
阅读全文