Я хочу знать, существует ли файл в указанном каталоге.
Мне нужно найти определенные файлы .txt во временном каталоге, но каталог файлов должен соответствовать шаблону, мне нужночтобы узнать, существуют ли файлы в данном шаблоне, так как я думаю, что это самый быстрый способ найти файл, единственный путь «неопределенный» или «. *» находится между a / b / c / d / e / и dou/you/1.txt, если я попытаюсь найти с помощью обычного поиска Find :: File в родительском каталоге a / b / c / d / e /, это займет около 10 минут, и есть вероятность, что я сохранил нежелательный путьв массиве причина 1.txt также существует в подкаталогах.
например, Требуются конкретные каталоги
a/b/c/d/e/f/g/h/dou/you/1.txt
a/b/c/d/e/k/l/m/dou/you/1.txt
a/b/c/d/e/k/l/m/wanna/play/2.txt
a/b/c/d/e/z/x/c/wanna/play/2.txt
a/b/c/d/e/f/g/h/with/me/3.txt
a/b/c/d/e/z/x/c/with/me/3.txt
Perl
use strict;
use warnings;
my @temporaryPath = qw(
dou/you/1.txt
wanna/play/2.txt
with/me/3.txt
like/play/4.txt
anything/really/5.txt
);
foreach my $temporaryList ( @temporaryPath ) {
my $dir = "a/b/c/d/e/" . "*" . "/$temporaryList";
if ( -e $dir ) {
print " exist :) $temporaryList\n";
}
else {
print " not exist :( $temporaryList\n";
}
}
Я использовал .*
в $dir
потому что существует много разных каталогов между полными путями, например f/g/h
, k/l/m
или z/x/c
.
В результате это
not exist :( dou/you/1.txt
not exist :( wanna/play/2.txt
not exist :( with/me/3.txt
not exist :( like/play/4.txt
not exist :( anything/really/5.txt
означаетчто $dir
не может прочитать a/b/c/d/e/.*/
Есть ли способ?