ownCloudのWindows用クライアントがジャンクション先のディレクトリの更新を検知しない。

失敗

ownCloudの同期クライアントは、同期対象のディレクトリ内の更新を自動的に検知して同期を実行する。

が、ジャンクション(Windowsの、ディレクトリのみのシンボリックリンクみたいなやつ)先のディレクトリやそれ以下のディレクトリはまったく見てくれない。

原因

ownCloudのWindows用クライアントは、ディレクトリの更新の検知に、FindFirstChangeNotification()を使っている*1が、このAPIがそもそもジャンクションを見ないらしい*2

未検証だが実際に検知が動作しないことを考えるとほぼ間違いなさそうだ。

対処

ジャンクション先のディレクトリをそれぞれ別にFindFirstChangeNotification()で検知するようにコードを直せば動かせないことはなさそう。

あるいはWindows Vista以降はちゃんとシンボリックリンクがあるようなので*3、そちらを使う。ただしFindFirstChangeNotification()シンボリックリンクに対応してるかは不明。

とうことで、現状未解決。