ReadDirectoryChangesW APIを使用して、Pythonを使用したWindowsでの作成/削除/名前の変更についてディレクトリを監視しようとしています。これは私のコードであり、正常に機能しています。
results = win32file.ReadDirectoryChangesW(self.hDir, 8192, True, self.type, None,
None)
for action, file in results:
full_filename = os.path.join (self.source_path, file)
if action == 1: # Created
self.fileCreated(full_filename)
elif action == 2: # Deleted
self.fileDeleted(full_filename)
elif action == 3: # Updated
self.fileUpdated(full_filename)
elif action == 4: # Renamed from something
renamed_file = full_filename
elif action == 5: # Renamed to something
self.fileRenamed(renamed_file, full_filename)
ただし、監視対象のフォルダーをPythonまたはWindowsエクスプローラーから削除しようとすると、次のようになります。
WindowsError:[エラー32]ファイルが別のプロセスによって使用されているため、プロセスはファイルにアクセスできません:'c:\ users \ user \ appdata \ local \ temp \ new_dir'
これは理にかなっていると思いますが、どうすれば解決できますか?私のアプリケーションでは、ユーザーが監視フォルダーを削除できるようにする必要があるためです。非同期メソッドhttp://www.themacaque.com/?p=859の解決策を試しましたが、役に立ちませんでした。
前もって感謝します!