Leopard解体新書--第5回:ファイル監視を行うFSEvent - (page 3)

木下誠(HMDT)

2007-11-13 19:20

手軽に使えるので応用に期待

 このようにTime Machine用に追加されたFSEventだが、プログラムから使うのは非常に簡単だ。先ほどのwatcher.rbの一部を紹介しよう。

// 引数からパスを取得する
path = ARGV.first

// FSEventStreamを作成する
stream = FSEventStreamCreate(
  KCFAllocatorDefault,
  fsevents_cb,
  nil,
  [path],
  KFSEventStreamEventIdSinceNow,
  1.0,
  0)

die "Failed to create the FSEventStream" unless stream

// FSEventStreamをランループに追加する
FSEventStreamScheduleWithRunLoop(
  stream,
  CFRunLoopGetCurrent(),
  KCFRunLoopDefaultMode)

// FSEventStreamをスタートする
ok = FSEventStreamStart(stream)
die "Failed to start the FSEventStream" unless ok

begin
  // ランループを開始する
  CFRunLoopRun()
  ...

 まず、パスを指定してFSEventStreamを作成する。これをCocoaのランループに追加して、イベントの監視をスタートする。これだけで利用可能だ。

 シンプルなので、動作も軽い。機能は少ないが、色々な応用を考えるのが楽しいだろう。たとえば、Safariのダウンロードフォルダを監視して、ダウンロードの開始と終了イベントを捕まえたり、特定のフォルダにファイルをコピーすると処理を開始するスクリプとなどが作れるかもしれない。アイディア次第で、応用範囲は広がりそうだ。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    「デジタル・フォレンジック」から始まるセキュリティ災禍論--活用したいIT業界の防災マニュアル

  2. 運用管理

    「無線LANがつながらない」という問い合わせにAIで対応、トラブル解決の切り札とは

  3. 運用管理

    Oracle DatabaseのAzure移行時におけるポイント、移行前に確認しておきたい障害対策

  4. 運用管理

    Google Chrome ブラウザ がセキュリティを強化、ゼロトラスト移行で高まるブラウザの重要性

  5. ビジネスアプリケーション

    技術進化でさらに発展するデータサイエンス/アナリティクス、最新の6大トレンドを解説

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]