[英]How can I get the last modified time of a directory in Perl on Windows?
在Perl(在Windows上)如何確定目錄的上次修改時間?
注意:
opendir my($dirHandle), "$path";
my $modtime = (stat($dirHandle))[9];
導致以下錯誤:
dirfd函數在scriptName.pl line lineNumber中未實現。
在CPAN上使用Win32 :: UTCFileTime模塊,它反映了內置的stat函數的接口:
use Win32::UTCFileTime qw(:DEFAULT $ErrStr);
@stats = stat $file or die "stat() failed: $ErrStr\n";
顯然,真正的答案只是在目錄路徑上調用stat(而不是在目錄句柄上,因為很多例子你會相信)(至少對於windows來說)。
例:
my $directory = "C:\\windows";
my @stats = stat $directory;
my $modifiedTime = $stats[9];
如果你想將它轉換為本地時間,你可以這樣做:
my $modifiedTime = localtime $stats[9];
如果您想在一行中完成所有操作,您可以執行以下操作:
my $modifiedTime = localtime((stat("C:\\Windows"))[9]);
另外,Win32 UTCFileTime perl模塊有一個語法錯誤,可以防止perl模塊被正確解釋/編譯。 這意味着當它包含在perl腳本中時,該腳本也將無法正常工作。 當我將所有執行任何操作的實際代碼合並到我的腳本中並重試它時,Perl最終耗盡內存並執行暫停。 無論哪種方式都有上面的答案。
my $dir_path = "path_of_your_directory";
my $mod_time = ( stat ( $dir_path ) )[9];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.