所以我试图创建一个程序来搜索目录中最近更新的文件。 我最初的希望是像
这样的命令file_array = FILE_INFO(file_path+'\*.dat')
将创建目录中所有文件的数组,然后
edit_time = file_array.mtime
会给我一个包含所有mtimes的数组,从中可以获得最大mtime,也就是最近更新的文件。据我所知,FILE_INFO
(和FSTAT
)似乎无法同时处理多个文件。
该程序应该是一个自动程序,随着数据被推送到计算机上,文件会不断更新和添加。因此,在比父目录更具体的任何内容中进行硬编码都不是一个可行的解决方案。
所以我需要的是可以处理多个文件的FILE_INFO
的替代方法,或者可以在不知道文件名的情况下查看每个文件的循环过程。
答案 0 :(得分:0)
这样的事情怎么样:
function mg_newest_file, dirname, _extra=e
compile_opt strictarr
files = file_search(filepath('*', root=dirname), count=nfiles, _extra=e)
info = replicate(file_info(files[0]), nfiles)
for i = 0L, nfiles - 1L do begin
info[i] = file_info(files[i])
endfor
ind = sort(info.mtime)
return, files[ind[-1]]
end
像这样调用它来查找给定目录中的最新常规文件:
IDL> print, mg_newest_file('/Users/mgalloy/projects/mglib', /test_regular)
/Users/mgalloy/projects/mglib/homebrew_configure.sh
根据您的工作,FOLDERWATCH
(在IDL 8.4中引入)可能对您有用。