2011-01-16 15 views
7

Tôi đang sử dụng FSEvents để theo dõi thư mục tệp sẽ có một số tệp lớn được sao chép vào tệp. Hiện tại FSEvents dường như đang gửi thông báo khi tôi bắt đầu sao chép tệp và một lần nữa khi hoàn tất việc sao chép tệp. Khi đó là một tệp nhỏ hơn, tôi chỉ nhận được một sự kiện. Có cách nào để kiểm tra xem một tập tin có đang được sao chép không?FSEvents và sao chép các tệp lớn

Đây là dành cho Snow Leopard bằng cách này.

+0

Câu hỏi này liên quan đến một câu hỏi khác: http://stackoverflow.com/questions/9139445/how-to-determine-if-a-file-copy-is-completed-using-cocoa/40957388#40957388 –

Trả lời

3

Tôi đã kết thúc bằng cách sử dụng lsof để kiểm tra xem tệp có mở ở cấp hạt nhân hay không. Tôi chỉ bắt đầu xử lý tệp khi lsof xác định rằng tệp không còn được sử dụng nữa.

+1

dường như không hoạt động trong ứng dụng hộp cát ... 'lsof: không thể nhận được số byte PID: Thao tác không được phép' –