سؤال

أنا بناء C# التطبيق التي من شأنها مراقبة الدليل المحدد لإجراء تغييرات وإضافات و تخزين المعلومات في قاعدة البيانات.

وأود أن تجنب فحص كل ملف التعديلات, ولكن لست متأكدا إذا أنا يمكن أن تثق تماما من الوصول إلى الملفات الوقت.

ما يمكن أن يكون أفضل طريقة لاستخدامها في الحصول على الملفات التي تم تعديلها مؤخرا في الدليل ؟

سوف تحقق من تعديلات فقط عندما يطلب المستخدم ذلك ، فإنه لن يكون باستمرار تشغيل الخدمة.

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

المحلول

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

نصائح أخرى

استخدام فيليسيستيمواتشير الكائن.هنا بعض التعليمات البرمجية أن تفعل ما كنت تبحث عن.

    // Declares the FileSystemWatcher object
    FileSystemWatcher watcher = new FileSystemWatcher(); 

    // We have to specify the path which has to monitor

     watcher.Path = @"\\somefilepath";     

    // This property specifies which are the events to be monitored
     watcher.NotifyFilter = NotifyFilters.LastAccess |
       NotifyFilters.LastWrite | NotifyFilters.FileName | notifyFilters.DirectoryName; 
    watcher.Filter = "*.*"; // Only watch text files.

    // Add event handlers for specific change events...

    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.Created += new FileSystemEventHandler(OnChanged);
    watcher.Deleted += new FileSystemEventHandler(OnChanged);
    watcher.Renamed += new RenamedEventHandler(OnRenamed);
    // Begin watching.
    watcher.EnableRaisingEvents = true;


    // Define the event handlers.
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
    // Specify what is done when a file is changed, created, or deleted.
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
    // Specify what is done when a file is renamed.
    }

أعتقد أن ما تريده هو فيليسيستيمواتشير فئة.

يصف هذا البرنامج التعليمي كيفية استخدامه لمراقبة دليل على التغييرات في ويندوز بسيطة الخدمة ؛ كيفية تطبيق بسيط filewatcher خدمة Windows في C#

إذا كنت تحتاج فقط إلى التحقق عندما يطلب المستخدم بدلا من ذلك ثم في كل وقت, لا تستخدم فيليسيستيمواتشير.لا سيما إذا كان مورد مشترك - آخر شيء تريده هو 50 عميل آلات مشاهدة نفس الدليل المشترك.

انها على الارجح مجرد خطأ مطبعي ولكن لا يجب عليك أن تبحث في الوصول إلى الملفات الوقت كنت تريد أن ننظر إلى ملف تعديل الوقت لالتقاط التغيرات.حتى أنه لا يمكن الاعتماد عليها.

ما أود القيام به هو تنفيذ نوعا من المجموع الاختباري الدالة على الملف و تاريخ بايت حجم أو ملف آخر "خصائص النظام".لا أن تبحث عن التغييرات في ملف كامل - خصائص وأنا يمكن أن تفعل ذلك على الطلب بدلا من محاولة اجراء اتصال إلى مورد بعيد لمراقبة ذلك.

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

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