حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش تشخیص در دسترس بود فایل در سی شارپ به زبان ساده

خیلی وقت ها، زمانی که قصد داریم از فایلی در زبان سی شارپ استفاده کنیم، به دلیل باز بودن فایل در برنامه دیگر و یا اصطلاحاً Lock بودن فایل توسط سایر Process ها با پیغام خطا مواجه می شویم، اما راهکاری وجود دارد که می توانیم ابتدا بررسی کنیم که فایل قابل دسترس هست یا نه.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای یادگیری و آموزش سی شارپ ( آموزش زبان برنامه نویسی سی شارپ ) رایگان به این لینک بروید

برای اینکار ابتدا یک Extension Method برای کلاس FileInfo تعریف می کنیم که داخل ساختار try..catch اقدام به باز کردن فایل کرده و در صورت موفق بودن عملیات مقدار true و در غیر اینصورت مقدار false را بر می گرداند:

public static class FileInfoExtensions
{
    public static bool IsLocked(this FileInfo f)
    {
        try
        {
            string fpath = f.FullName;
            FileStream fs = File.OpenWrite(fpath);
            fs.Close();
            return false;
        }

        catch (Exception) { return true; }
    }
}

حال برای استفاده از متد بالا می توان به صورت زیر عمل کرد:

FileInfo info = new FileInfo("D:\\data.dat");
if (!info.IsLocked())
{
    // your code
}

امیدوارم که این نکته مورد استفاده دوستان قرار گرفته باشد. ITPRO باشید


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات