برنامه قفل فایل در سی‌شارپ (C# File Locker): یک راهکار جامع و کامل


در دنیای فناوری‌های اطلاعات، امنیت و محافظت از داده‌ها اهمیت ویژه‌ای دارد. یکی از روش‌های مؤثر برای حفاظت از فایل‌ها، قفل کردن آن‌ها است. این کار باعث جلوگیری از دسترسی غیرمجاز، ویرایش یا حذف فایل‌ها می‌شود. در این مطلب، قصد دارم به صورت جامع و کامل درباره سورس کد برنامه قفل فایل در زبان برنامه‌نویسی سی‌شارپ (C#) صحبت کنم، و نحوه پیاده‌سازی یک سیستم قفل فایل را شرح دهم.
مقدمه‌ای بر مفهوم قفل فایل در سی‌شارپ
در برنامه‌نویسی، قفل کردن فایل به معنای محدود کردن دسترسی‌های دیگر برنامه‌ها یا کاربرها به فایل موردنظر است. در سی‌شارپ، این کار معمولا از طریق استفاده از کلاس‌های موجود در فضای نام System.IO انجام می‌شود، ولی برای قفل کردن واقعی فایل، باید از مکانیزم‌های سطح سیستم‌عامل بهره برد. یکی از روش‌های رایج، استفاده از قابلیت‌های فایل‌ سیستم ویندوز است که به برنامه‌نویس امکان می‌دهد فایل را به صورت exclusive (انحصاری) باز کند، به طوری که دیگر برنامه‌ها نتوانند در زمان قفل بودن فایل، به آن دسترسی پیدا کنند.
در این راستا، روش‌هایی مانند استفاده از کلاس FileStream و تنظیم پارامترهای آن، نقش مهمی دارند. همچنین، باید توجه داشت که قفل کردن فایل باید با دقت انجام شود تا از قفل شدن ناخواسته فایل و بروز مشکلات جلوگیری گردد. در ادامه، قدم به قدم به شرح جزئیات پیاده‌سازی این سیستم می‌پردازیم.
معرفی کلاس‌های کلیدی و مفاهیم مربوطه
در پروژه قفل فایل، کلاس‌های اصلی که باید با آن‌ها آشنا شویم، عبارتند از:
- FileStream: این کلاس به برنامه اجازه می‌دهد فایل‌ها را باز و بسته کند، و همچنین در هنگام باز کردن، قابلیت قفل کردن فایل را فراهم می‌آورد.

- FileAccess: این Enumeration مشخص می‌کند که فایل با چه سطح دسترسی باز می‌شود، مثل Read، Write یا ReadWrite.

- FileShare: این گزینه تعیین می‌کند که چه نوع اشتراک‌گذاری بین برنامه‌های مختلف صورت می‌گیرد، به عنوان مثال، هیچ اشتراکی (None)، اشتراک‌گذاری فقط خواندنی (Read)، یا اشتراک‌گذاری کامل (ReadWrite).
برای قفل کردن کامل فایل، معمولا فایل را با دسترسی Write و Share.None باز می‌کنند، که در این صورت، دیگر برنامه‌ها نمی‌توانند فایل را بخوانند یا بنویسند تا زمانی که قفل برداشته شود.
کد نمونه پیاده‌سازی سیستم قفل فایل در سی‌شارپ
حالا، بیایید نگاهی بیندازیم به نمونه کد ساده و در عین حال کارآمد برای قفل کردن فایل. این کد، فایل موردنظر را با قفل کامل باز می‌کند، و در صورت نیاز، آن را قفل نگه می‌دارد تا زمانی که کاربر تصمیم بگیرد آن را آزاد کند.
csharp  

using System;

using System.IO;
namespace FileLocker

{

class Program

{

static FileStream fileStream;
static void Main(string[] args)

{

string filePath = @"C:\temp\protectedFile.txt";
try

{

// باز کردن فایل با دسترسی نوشتن و قفل کامل (Share.None)

fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
Console.WriteLine("فایل قفل شد. لطفاً کلید Enter را بزنید تا آزاد شود.");

... ← ادامه مطلب در magicfile.ir