opendir(DIR,"$pwd") or die "Cannot open $pwd\n";
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
next if ($file !~ /\.txt$/i);
my $mtime = (stat($file))[9];
print $mtime;
print "\n";
}
기본적으로 디렉토리의 모든 txt 파일의 타임 스탬프를 기록합니다. 하위 디렉토리가있는 경우 해당 하위 디렉토리에도 파일을 포함하고 싶습니다.디렉토리의 모든 파일을 탐색하는 방법. 하위 디렉토리가있는 경우 하위 디렉토리의 파일을 탐색하려고합니다.
누군가 위의 코드를 수정하여 서브 디렉토리를 포함하도록 도와 줄 수 있습니까?
난 창에서 아래의 코드를 사용하고있는 경우에도 내 폴더 외부 폴더에있는 모든 파일의 점점 타임 스탬프를 IAM
당신은 재귀를 사용할 수 있습니다my @dirs = ("C:\\Users\\peter\\Desktop\\folder");
my %seen;
while (my $pwd = shift @dirs) {
opendir(DIR,"$pwd") or die "Cannot open $pwd\n";
my @files = readdir(DIR);
closedir(DIR);
#print @files;
foreach my $file (@files) {
if (-d $file and !$seen{$file}) {
$seen{$file} = 1;
push @dirs, "$pwd/$file";
}
next if ($file !~ /\.txt$/i);
my $mtime = (stat("$pwd\$file"))[9];
print "$pwd $file $mtime";
print "\n";
}
}
오래된 튼튼한 방법 ... 재귀없이 = 멋지게 완료 됨) – Ouki
'$ file! ~ /^\.*$/'은'$ file = ~ /[^.]/'입니다. 그러나 나는 과거에 리눅스 파일의 유효한 이름이기 때문에 단지 3 개의 점 또는 그 이상의 이름을 제외하기 위해 심하게 비난을 받았다. 그래서 테스트 *는'$ file! ~ /^\.\.?$/' – Borodin
@perreal이어야합니다. 파일을 열어서 파일 내의 특정 문자열을 검색하고 그러한 파일을 분리하려면, 그렇게 할 생각입니다. OPEN INPUT, $ file, $ lines = 을 입력 한 다음, 그것을 적용하십시오. 괜찮습니까? 또는 다른 쉬운 방법이 있습니다. – Peter