使用infile语句时如何获取文件的最后修改时间?

How to get last modified time of file while using infile statement?

我要分析一批SAS程序文件,卡在获取程序文件的最后修改时间。我考虑过 X 命令,但效率太低。
我只是在使用 infile 语句时发现:

data test;
  infile 'D:\test.txt' truncover;
  input ;
run;

日志显示最后修改时间:

NOTE: The infile 'D:\test.txt' is:
      Filename=D:\test.txt,
      RECFM=V,LRECL=32767,File Size (bytes)=7,
      Last Modified=2021/1/26 15:25:48,
      Create Time=2021/1/26 15:25:42

如您所见,日志window 将文件的信息显示为注释。但是,我希望输出的是一个充满上次修改时间的变量

在使用 infile 语句时是否有一些选项可以获取它? 当然,也欢迎其他有效的方法。

使用函数 FOPENFINFO

示例:

显示样本数据文件的所有可用信息项及其值。

filename datafile 'c:\temp\datafile.txt';

data _null_;
  file datafile;
  put 'Me data';
run;

data _null_;
  fid = fopen('datafile');

  if fid then do;
    do index = 1 to foptnum(fid);
      info_name = foptname(fid,index);
      info_value = finfo(fid, info_name);

      put index= info_name= @40 info_value=;       
    end;
    
    rc = fclose(fid);
  end;
run;

会记录

等信息
index=1 info_name=Filename             info_value=c:\temp\datafile.txt
index=2 info_name=RECFM                info_value=V
index=3 info_name=LRECL                info_value=32767
index=4 info_name=File Size (bytes)    info_value=9
index=5 info_name=Last Modified        info_value=26Jan2021:06:29:47
index=6 info_name=Create Time          info_value=26Jan2021:06:28:23