0

私は Perl を初めて使用するので、Perl を使用してファイルがフォルダーに取り込まれたかどうかを検出し、それらのファイルを別の場所に移動する方法についてアドバイスを求めたいと思います。

特定のファイルの待機にかかる多くのコードを見てきましたが、私の会社ではファイルに数値ランダマイザーを使用しているため、2 つのファイルが同じ名前になることはありません。

この件で何か助けていただければ幸いです。

再度、感謝します。

アーロン

4

1 に答える 1

1

更新: @daxim はコメントで、File::ChangeNotifyは Win32::FileSystem::Watcher と非常によく似た方法で動作するクロスプラットフォーム モジュールであることを示唆しています。

CPANを簡単に検索すると、Win32::FileSystem::Watcherがディレクトリの変更を警告できることがわかります。このモジュールと依存関係をインストールする必要があります。

ドキュメントから:

use Win32::FileSystem::Watcher;

my $watcher = Win32::FileSystem::Watcher->new( "c:\\" );

# or

my $watcher = Win32::FileSystem::Watcher->new(
    "c:\\",
    notify_filter  => FILE_NOTIFY_ALL,
    watch_sub_tree => 1,
);

$watcher->start();
print "Monitoring started.";

sleep(5);

# Get a list of changes since start().
my @entries = $watcher->get_results();

# Get a list of changes since the last get_results()
@entries = $watcher->get_results();

# ... repeat as needed ...

$watcher->stop(); # or undef $watcher

foreach my $entry (@entries) {
    print $entry->action_name . " " . $entry->file_name . "\n";
}

# Restart monitoring

# $watcher->start();
# ...
# $watcher->stop();
于 2012-08-15T05:10:36.600 に答える