هزيمة ملف CIFS للتخزين المؤقت على Windows / فرض "تحديث"

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

  •  28-09-2019
  •  | 
  •  

سؤال

أقوم بتعديل الملفات على نظام UNIX والوصول إليها على مربع Windows. يقوم الخادم بتشغيل Samba وهناك قدر من التخزين المؤقت الذي يقوم به العميل. عندما أقوم بتعديل الملف على جانب UNIX ، فإن الطريقة الوحيدة الموثوقة لمشاهدة الإصدار الجديد من الملف هي النقر بزر الماوس الأيمن في Windows Explorer وتحديد "Refresh".

أبحث عن Windows API المكافئة للنقر بزر الماوس الأيمن في Windows Explorer واختيار "تحديث". هناك أسئلة أخرى حول إرسال رسالة إلى Explorer لتتسبب في تحديثها ، ولكن هذا ليس ما أريده: لا أهتم بمحتويات نافذة Explorer وأفضل حتى ألا أحتاج إلى فتح واحد للهدف الدليل. أريد فقط دمج تأثير هزيمة ذاكرة التخزين المؤقت في برنامجي ، لذا أتجنب رؤية البيانات التي لا معنى لها.

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

المحلول

يتضمن CIFS نظام إشعار للتحديثات. يسجل المستكشف لهذا ، وسوف يعكس أي تغييرات يرسلها سامبا. لست على دراية بأي آلية API أخرى لإخبار Windows بأنها تحتاج إلى تحديث.

تدعم Samba Inotify Linux ، لذلك يجب أن تلتقط أي تغييرات تلقائيًا على المجلدات التي يعرضها Explorer تحديثات Explorer وإرسالها.

هل تستخدم نسخة حديثة بما في ذلك من سامبا ، وهل تم تصميم Samba بدعم من عدمه؟ من الواضح أن هذا لينكس فقط. بالنسبة إلى UNIX آخر ، يمكنك تنفيذ وظائف مكافئة. الرمز ذي الصلة في smbd/notify_internal.c.

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