اكتشاف تغييرات نظام الملفات على مشاركة Samba مع Java على Windows

StackOverflow https://stackoverflow.com/questions/2400117

سؤال

بالنسبة للمشروع الأخير، أحتاج إلى اكتشاف تغييرات نظام الملفات في حصة Samba المعينة من Java على Windows: إنشاء وتحديثات وإزالتها. في الوقت الحالي، أستخدم استطلاع مجلد يحافظ على قائمة الملفات والطابع الزمني المعدل للبحث عن الأحداث.

ولكن مشكلتي هي أن هذا المجلد يستأصل فقط إلى المجلد في المجلد في أوقات معينة (كل 10 ثوان على سبيل المثال)، لذلك يمكن تحديث ملف محدث مرتين بين استطلاعين دون التعرف عليه.

هل هناك أي طريقة للحصول على أحداث من Windows داخل Java كلما حدث حدث ملف على حصة Mappep Samba؟

شكرا!

هل كانت مفيدة؟

المحلول

ليس لدى Java أي شيء في API IO الحالي للتعامل مع إشعارات الملفات من O / S.

سيكون لدى Java 7 API IO جديد JSR-203. هذا لديه أ مشاهدة ملف API. التي سوف تستخدم إما أصلية الإخطارات O / S أو استفتاء إذا لم يتم دعم الإخطارات للكشف عن تغييرات الملفات.

في غضون ذلك، يمكنك أن تنظر إلى معرفة ما إذا كان شخص ما قام بتنفيذ مكتبة تتيح لك ربط الإخطارات O / S عبر JNI. أعتقد أن فكرة Intellij تستخدم ليب الأصلي لهذا الغرض.

تبحث على المصدر لقد وجدت jfilenotify. لكنني لم أستخدمها أبدا.

بدلا من ذلك يمكنك زيادة تردد أخذ العينات الخاص بك (ولكن هذا سيبدأ في مطرقة نظام الملفات الخاص بك) أو تغيير كيفية كتابة ملفاتك عن طريق إضافة رقم الإصدار إلى اسم الملف / المجلد بحيث يمكنك معرفة ذلك بسهولة عندما يتغير شيء ما.

نصائح أخرى

وفق هذا المنتدى دخول teamdev. jniwrapper. قادر على القيام بذلك مثل أريد ذلك. أنا فقط اشتريت نسخة. شكرا لك و

هيتز، غد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top