هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

با عضویت در سایت از امکانات فوق العاده بهرمنده خواهید شد.

دوره آموزش برنامه نویسی اندروید
آموزش unzip کردن فایل zip در برنامه نویسی اندروید

آموزش unzip کردن فایل zip در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش unzip کردن فایل zip در برنامه نویسی اندروید می پردازیم این پست خیلی کاربردی است به طور مثال شما بعضی مواقع نیاز دارید تا یک فایل zip را از اینترنت دانلود کنید توی فایل zip هم به طورمثال اطلاعات مهمی هست که برای اپلیکیشن مهم است و در برنامه استفاده میشه شما بعد از دانلود فایل zip باید آن را Extract (استخراج) کنید سپس از داده های آن استفاده کنید در ادامه با ما همراه باشید.

ما کلاس اصلی را کمی دستکاری کردیم تا به بالاترین راندومان استخراج برسیم

یک کلاس به نام Decompress ایجاد کنید و کد زیر را در آن قرار دهید.

 

این شامل یک void است که مسیر را بررسی می کند (dirchecker) علت بررسی این است که در صورتی که مسیر اشتباه بود برنامه crash ندهد.کاری که این کلاس انجام می دهد ابتدا با استفاده از File inputstream فایل را byte به بایت می خواند سپس توسط کلاس zipEntry آن را استخرج می کند.

نحوه استفاده از آن هم در اکتیویتی که می خواهید فایل را استخراج کنید از متود زیر استفاده کنید.

در بالا ما یکسری کد های اضافی قرار داده ایم به طور مثال خط اول بررسی می کند که آیا حافظه در دسترس است یا خیر  اگر در دسترس باشد (یعنی وارد else می شود) و یک فولدر به نام Programchi می سازد بعد از آن ما باید مسیر فایل zip را داشته باشیم و متغیر zipFile مسیر اصلی که فایل zip در آن قرار  دارد را به دست می آورد و unziplocation مسیری است که فایل در آن استخراج می شود و برای اینکه فایل استخراج شود از Decompress همان کلاسی که درست کردیم استفاده می کنیم و دو مقدار ورودی دارد یک مسیر فایل ما و دومی مسیری که فایل می خواهد استخراج شود.

این آموزش هم به پایان رسید.

 

موفق باشید.

 

درباره نویسنده

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۱۵ )

  1. سعید
    ۲۷, آبان , ۱۳۹۶ در ۶:۰۵ ق.ظ

    یا سلام و تشکر از آموزشتون ایا با این کد میشه قایل های rar رو هم باز کرد؟

  2. محمود
    ۱, دی , ۱۳۹۶ در ۳:۵۶ ب.ظ

    اگه بخوایم یه فایل zip رو از پوشه assets توی sd اکسترکت کنیم باید چکار کنیم؟؟؟

    • محمد حسین جعفری پور
      ۱, دی , ۱۳۹۶ در ۵:۵۲ ب.ظ

      سلام می توانید مثل زیر عمل کنید.

      موفق باشید.

      • سید ابوالفضل موسوی
        ۲۳, مرداد , ۱۳۹۷ در ۴:۱۳ ب.ظ

        سلام من خیلی ممنونم که به این دوست جواب دادین من برای این یه قطعه کد چون سواد برنامه نویسیم کمه کل سایتا رو شخم زدم

        • محمد حسین جعفری پور
          ۲۳, مرداد , ۱۳۹۷ در ۱۰:۵۰ ب.ظ

          سلام و درود
          خواهش می کنم
          موفق باشید.

          • سید ابوالفضل موسوی
            ۲۷, مرداد , ۱۳۹۷ در ۴:۲۷ ب.ظ

            با سلام استاد من یه مشکل دارم من کلاس Decompress رو ساختم و یه دکمه تو main.xml دارم و یه فایل test.zip در مسیر assets دارم که می خوام کاربر پس از زدن دکمه فایل در روت اینترنال استورج اکسترکت بشه آی دی دکمه هم btn1 هستش و دکمرو تو MainActivity.java تعریف کردم حالا می خوام بفهم با چه کدی میشه گف که پس از زدن این دکمه عملیاتی که گفتم اجرا بشع

            من اینو امتحان کردم ولی ارور زیاد داره

          • محمد حسین جعفری پور
            ۲۷, مرداد , ۱۳۹۷ در ۶:۳۲ ب.ظ

            سلام و درود
            بفرمایید چی خطا میده راهنمایی کنیم.

          • سید ابوالفضل موسوی
            ۲۷, مرداد , ۱۳۹۷ در ۵:۰۲ ب.ظ

            اگه میشه یه مین اکتیویتی با کد های on click listener باتن بدین همراه با کدهای import که کاملا متوجه بشم

  3. رضا حیدری
    ۱۱, اسفند , ۱۳۹۶ در ۱۰:۲۲ ق.ظ

    با سلام و احترام. اگه بخواهیم یه فایل zip رو از پوشه raw داخل sdcard اکسترکت کنیم باید به چه نحوی عمل کنیم؟ ممنون میشم با کد پاسخ بدین.

    • محمد حسین جعفری پور
      ۱۱, اسفند , ۱۳۹۶ در ۱:۴۲ ب.ظ

      سلام و درود از کد زیر می توانید استفاده کنید.

      موفق باشید.

  4. سید ابوالفضل موسوی
    ۱۱, شهریور , ۱۳۹۷ در ۳:۳۳ ب.ظ

    با سلام من از کدی که تو اموزش قرار دادین استفاده می کنم (کلاس دکامپرس+متدی که در متن گفتین)
    کد ها کاملا درست اجرا میشن ولی چون در بکگراند اجرا نمیشن برنامه تا اتمام فرایند فریز میشه و بعضا هنگ می کنه و فرایند نا تموم می مونه می خواستم کلاس دکامپرس رو بگین چطوری تغییر بدم که asynctask یا doinbackground بشه تا برنامه فریز نشه و یه پروگرس دیالوگ نمایش داده بشه

    • سید ابوالفضل موسوی
      ۱۱, شهریور , ۱۳۹۷ در ۵:۰۲ ب.ظ

      سلام ممنون میشم جوابمو زود بدین چون واقعا مغزم درگیر این هستش و کل اینترنتو شخم زدم چیزی دست گیرم نشد

      • محمد حسین جعفری پور
        ۱۳, شهریور , ۱۳۹۷ در ۲:۱۸ ق.ظ

        سلام و درود از کد زیر استفاده کنید

        نحوه استفاده از کد

        موفق باشید.

        • سید ابوالفضل موسوی
          ۱۳, شهریور , ۱۳۹۷ در ۱۲:۵۴ ب.ظ

          ممنون

  5. bd
    ۲۷, مرداد , ۱۳۹۸ در ۷:۲۰ ب.ظ

    سلام اگه بخوایم فایل zip رو از assets به حافظه داخلی استخراج کنه و هنگام استخراج یک پروگرس دیالوگ نمایش بده باید چه کدی رو بزنیم ؟
    پروگرس دیالوگ رو تو یک activity جدا به نام
    AsyncCopy.java دارم ولی میخوام بدونم چطور باید به فرایند استخراج متصلش کنم .
    واقعا ممنون میشم راهنمایی کنید و کد کامل activity رو بدید چون من تازه کارم و زیاد محل قرار گیری کد ها رو نمیدونم .
    🙏