سؤال

أرغب في قفل ملف للكتابة من خدمة Windows ، لكن حتى الآن لا تعمل محاولاتي للحصول على قفل. نفس الرمز يعمل من تطبيق وحدة التحكم ، على الرغم من.

من ما قرأته ، هذا بسبب قفل انتهازي لم يتم تمكينه لخدمتي.

كيف يمكنني منع كتابته من خلال قفله من خدمة دون اللجوء إلى اختراقات التسجيل؟

رمز للقفل:

FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);

رمز لفتح:

lockStream.Close();
lockStream.Dispose();
هل كانت مفيدة؟

المحلول

  using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
  { }

هل استخدمت وضع fileshare عند فتح الملف للقراءة أو الكتابة؟

نصائح أخرى

إستخدم Mutex العالمي كونك حريصًا جدًا على إطلاقه (أخيرًا وما إلى ذلك)

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