2008-09-30 33 views
8

Tôi muốn thử nghiệm các ý tưởng về đồng bộ hóa/phân phối tệp được phân phối. Để làm cho nó hiệu quả khi người dùng đang làm việc, tôi muốn triển khai một số loại daemon để theo dõi các thay đổi trong một số thư mục (ví dụ:/home/user/dirToBeMonitored hoặc c: \ docs và setts \ user \ dirToBeMonitored). Vì vậy, tôi có thể biết được tên tập tin nào đã được thêm/thay đổi/xóa mỗi lần (hoặc trong một khoảng thời gian hợp lý).API độc lập với hệ điều hành để giám sát hệ thống tệp?

Điều này có thể thực hiện được với bất kỳ ngôn ngữ cấp cao nào không ?. Bạn có biết một số API (và trong đó ngôn ngữ?) Để làm điều này?

Cảm ơn.

+2

OP đang yêu cầu giải pháp đa nền tảng, không có câu trả lời nào dưới đây giải quyết vấn đề này. Giải pháp lý tưởng như vậy nên được thực hiện trong một ngôn ngữ cấp thấp như C++ sau đó cung cấp các ràng buộc với các ngôn ngữ cấp cao khác nhau, ví dụ Python –

Trả lời

9

Câu trả lời được khoanh vùng, mặc dù câu trả lời yêu cầu phụ thuộc thư viện lớn (đáng giá IMO)!

QT cung cấp lớp QFileSystemwatcher, sử dụng cơ chế gốc của nền tảng cơ bản.

Thậm chí tốt hơn, bạn có thể sử dụng các ràng buộc ngôn ngữ QT cho Python hoặc Ruby. Here là một ứng dụng PyQT4 đơn giản sử dụng QFileSystemWatcher.

Ghi chú

  • Một tài liệu tham khảo tốt trên trên creating deployable PyQT4 apps, đặc biệt là trên OSX nhưng nên làm việc cho Windows cũng có.
  • Cùng một giải pháp đã được đăng trước đây here.
  • Các bộ công cụ đa nền tảng khác cũng có thể thực hiện thủ thuật (ví dụ: 'GIOGFileMonitor, mặc dù chỉ là UNIX và không hỗ trợ cơ chế FSEvents của OSX).
10

Các API hoàn toàn khác nhau đối với Windows, Linux, Mac OS X và bất kỳ số nào khác Unix bạn có thể đặt tên, có vẻ như. Tôi không biết bất kỳ thư viện đa nền tảng nào xử lý vấn đề này một cách nhất quán.

0

Và trên OS X, nó được gọi là fsevents. Đó là một API cấp hệ điều hành, vì vậy nó dễ dàng nhất để truy cập từ C hoặc C++. Nó nên có thể truy cập được từ hầu hết mọi ngôn ngữ, mặc dù các ràng buộc cho ngôn ngữ ưa thích của bạn có thể chưa được viết.

Các vấn đề liên quan