Я модифицировал написанный мною сценарий, чтобы теперь копировались только .jpg
файлов.
Скрипт вроде работает. Он скопирует все .jpg
файлов из одной папки в другую, но сценарий предназначен для непрерывного цикла каждые X
секунд.
Если я добавлю новый файл .jpg
в папку, из которой я перемещаю элементы, после того, как я уже запустил скрипт, он не будет копировать вновь добавленный файл. Если я остановлю и перезапущу скрипт, он скопирует новый добавленный файл .jpg
, но я хочу, чтобы скрипт копировал элементы по мере их помещения в папки и не должен был останавливать и перезапускать скрипт.
До того, как я добавил функцию glob
, пытающуюся копировать только файлы .jp
g, скрипт копировал что-либо в папку, даже если это было перемещено в папку, пока скрипт все еще работал.
Почему это происходит? Любая помощь будет потрясающей.
Вот мой код:
use File::Copy;
use File::Find;
my @source = glob ("C:/sorce/*.jpg");
my $target = q{C:/target};
while (1)
{ sleep (10);
find(
sub {
if (-f) {
print "$File::Find::name -> $target";
copy($File::Find::name, $target)
or die(q{copy failed:} . $!);
}
},
@source
);
}