У меня нет способа проверить это (Linux, не слишком много знаний по Юникоду и т. Д.), И это, вероятно, неэффективно, но, возможно, это сработает "просто сделай это каким-то образом". Вы можете использовать мой File::chdir::WalkDir
и используйте обратный вызов для каждого файла, который добавляет к имени файла список:
#!/usr/bin/env perl
use strict;
use warnings;
use File::chdir::WalkDir;
use File::Spec::Functions 'catfile';
my $base_dir = '.';
my @files;
my $callback = sub {
my ($file, $dir) = @_;
return unless ($file =~ /\.lnk$/);
push @files, catfile($dir, $file);
};
walkdir($base_dir, $callback);
Так как это зависит от opendir
и друзей, это может быть медленным, но пока он может видеть ваши файлы, это должно работать. Попробуйте и дайте мне знать, если есть проблемы.