نمایش نتایج 1 تا 8 از 8

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

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    40
    پست
    1,237

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

    با سلام البته من نمیدونم چرا این پست را بالا اوردید ، کاش یک تاپیک جدید ایجاد میکردید
    فایل iso در واقع یک فایل فشرده مانند زیپ هست که هدرش کمی فرق میکنه
    اگه منظورتون این بود که چجوری میشه در سی شارپ محتوای فایل iso را استخراج کرد،

    از کتابخانه .NET DiscUtils میتونید استفاده کنید

    using DiscUtils;using DiscUtils.Iso9660;


    void ExtractISO(string ISOName, string ExtractionPath)
    {
    using (FileStream ISOStream = File.Open(ISOName, FileMode.Open))
    {
    CDReader Reader = new CDReader(ISOStream, true, true);
    ExtractDirectory(Reader.Root, ExtractionPath + Path.GetFileNameWithoutExtension(ISOName) + "\", "");
    Reader.Dispose();
    }
    }
    void ExtractDirectory(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO)
    {
    if (!string.IsNullOrWhiteSpace(PathinISO))
    {
    PathinISO += "\" + Dinfo.Name;
    }
    RootPath += "\" + Dinfo.Name;
    AppendDirectory(RootPath);
    foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
    {
    ExtractDirectory(dinfo, RootPath, PathinISO);
    }
    foreach (DiscFileInfo finfo in Dinfo.GetFiles())
    {
    using (Stream FileStr = finfo.OpenRead())
    {
    using (FileStream Fs = File.Create(RootPath + "\" + finfo.Name)) // Here you can Set the BufferSize Also e.g. File.Create(RootPath + "\" + finfo.Name, 4 * 1024)
    {
    FileStr.CopyTo(Fs, 4 * 1024); // Buffer Size is 4 * 1024 but you can modify it in your code as per your need
    }
    }
    }
    }
    static void AppendDirectory(string path)
    {
    try
    {
    if (!Directory.Exists(path))
    {
    Directory.CreateDirectory(path);
    }
    }
    catch (DirectoryNotFoundException Ex)
    {
    AppendDirectory(Path.GetDirectoryName(path));
    }
    catch (PathTooLongException Exx)
    {
    AppendDirectory(Path.GetDirectoryName(path));
    }
    }


    اینم نحوه استفاده تابع:

    ExtractISO(ISOFileName, Environment.GetFolderPath(Environment.SpecialFolde  r.DesktopDirectory) + "\");

  2. #2

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

    با سلام و احترام و عرض تشکر

    راستش اینکه چرا این تایپیک را اینجا درج کردم دلیلش این بود که استارتر محترم چیزی شبیه به آنچه بنده نیاز داشتم و همچنان نیاز دارم را ارائه کرده بودند و من هم زیر همان تقاضای کمک کردم.

    فایل های ایزو برای اجرا شدن بعد از اکسترکت معمولا یک فایل اتوران و یا چیزی شبیه به آن در کنار فایل های dll خودشان دارند که با استفاده از آن میشود آنرا اجرا کرد.

    من قبلا از کتابخانه DiscUtils استفاده کرده ام ولی کدهایی که برای اجرای فایل iso مورد نظر دیدم کمی با آنجه سرکارعالی ارائه فرمودید متفاوت است . هر چند که اظهار نظرات جالبی در باره Dokan در صفحات مختلف وجود ندارد و از باگ های گسترده آن صحبت میشود اما حتما با دقت کدهایی را که زحمت کشیدید و ارسال فرمودید برسسی و تست می کنم جون در نهایت بعد از Explor باید توسط فراخوانی Autorun اجرا بشود . در هر صورت ممنونم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •