如何获取目录的最后修改日期?
How do I get the last modified date of a directory?
我使用的是 5.16.3。如何获取目录的最后修改时间戳?有了文件,我可以运行
my $deployFile = "$jbossHome/standalone/deployments/$artifactId.$packaging";
open my $fh, '>', $deployFile or die("File does not exist.");
my $mtime = (stat ($fh))[9];
我用一个目录尝试了这个逻辑,
my $mtime = stat("$jbossHome/standalone/deployments/$artifactId.$packaging");
但结果总是
Thu Jan 1 00:00:01 1970
尽管我可以在服务器上告诉目录的最后修改时间戳是这个周末。
这个:
my $mtime = stat("$jbossHome/standalone/deployments/$artifactId.$packaging");
应该写成:
my $mtime = (stat("$jbossHome/standalone/deployments/$artifactId.$packaging"))[9];
参见 perldoc stat。
stat EXPR returns a 13-element list giving the status info for a file, either the file opened via FILEHANDLE or DIRHANDLE, or named by EXPR.
在结果列表中,mtime 位于第 10 个位置(索引 9)。
还有:
In scalar context, stat returns a boolean value indicating success or failure
因此,在您的代码中,您在标量上下文中求值时,mtime 变量被赋值为 1。当将 interpretef 作为 Unix 时间戳时,这意味着 1970 年 1 月 1 日之后的 1 秒。
您可以使用核心 File::stat 获得更好的统计字段界面。
use strict;
use warnings;
use File::stat;
my $stat = stat($filename) or die "stat $filename failed: $!";
my $mtime = $stat->mtime;
我使用的是 5.16.3。如何获取目录的最后修改时间戳?有了文件,我可以运行
my $deployFile = "$jbossHome/standalone/deployments/$artifactId.$packaging";
open my $fh, '>', $deployFile or die("File does not exist.");
my $mtime = (stat ($fh))[9];
我用一个目录尝试了这个逻辑,
my $mtime = stat("$jbossHome/standalone/deployments/$artifactId.$packaging");
但结果总是
Thu Jan 1 00:00:01 1970
尽管我可以在服务器上告诉目录的最后修改时间戳是这个周末。
这个:
my $mtime = stat("$jbossHome/standalone/deployments/$artifactId.$packaging");
应该写成:
my $mtime = (stat("$jbossHome/standalone/deployments/$artifactId.$packaging"))[9];
参见 perldoc stat。
stat EXPR returns a 13-element list giving the status info for a file, either the file opened via FILEHANDLE or DIRHANDLE, or named by EXPR.
在结果列表中,mtime 位于第 10 个位置(索引 9)。
还有:
In scalar context, stat returns a boolean value indicating success or failure
因此,在您的代码中,您在标量上下文中求值时,mtime 变量被赋值为 1。当将 interpretef 作为 Unix 时间戳时,这意味着 1970 年 1 月 1 日之后的 1 秒。
您可以使用核心 File::stat 获得更好的统计字段界面。
use strict;
use warnings;
use File::stat;
my $stat = stat($filename) or die "stat $filename failed: $!";
my $mtime = $stat->mtime;