رفتن به مطلب
  • 0

unzip فایل آفلاین


alimaha

سوال

سلام به همگی
بنده کد زیر را برای کپی و unzip  فایل های فشرده از سایت گرفتم اما نمی دونم کجا باید آدرس و اسم فایل موجود در پوشه assets رو بدم و کجا باید آدرس حافظه گوشی رو :

لطفا محل نوشتن آدرس فایل و محل کپی شدن و محل unzip کردن با مثال مشخص نمایید.

 

private void unzip(String src, String dest){

        final int BUFFER_SIZE = 4096;

        BufferedOutputStream bufferedOutputStream = null;
        FileInputStream fileInputStream;
        try {
            fileInputStream = new FileInputStream(src);
            ZipInputStream zipInputStream = new ZipInputStream(new BufferedInputStream(fileInputStream));
            ZipEntry zipEntry;

            while ((zipEntry = zipInputStream.getNextEntry()) != null){

                String zipEntryName = zipEntry.getName();

                String name = dest.substring(dest.lastIndexOf("/")-1);

                File FileName = new File(FolderName);
                if (!FileName.isDirectory()) {
                    try {
                        if (FileName.mkdir()) {
                        } else {
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }

                File file = new File(FolderName+"/" +zipEntryName);

                if (file.exists()){

                } else {
                    if(zipEntry.isDirectory()){
                        file.mkdirs();
                    }else{
                        byte buffer[] = new byte[BUFFER_SIZE];
                        FileOutputStream fileOutputStream = new FileOutputStream(file);
                        bufferedOutputStream = new BufferedOutputStream(fileOutputStream, BUFFER_SIZE);
                        int count;

                        while ((count = zipInputStream.read(buffer, 0, BUFFER_SIZE)) != -1) {
                            bufferedOutputStream.write(buffer, 0, count);
                        }

                        bufferedOutputStream.flush();
                        bufferedOutputStream.close();
                    }
                }
            }
            zipInputStream.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

 

لینک مطلب :

image - android unzip folder from zip file and read content from that folder - Stack Overflow

اسم فایل فشرده test بوده و در پوشه assets کپی شده و مسیر کپی شده در sdcard/game/d1   می باشد

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

بنده کد ها رو مانند زیر وارد کردم اما جواب نداد
 

  unzip("//sdcard/Qran","//sdcard/Qran");

 

قسمتی هم که خطا می داد اسم فایل نوشتم
 

 File FileName = new File("Test");
                if (!FileName.isDirectory()) {
                    try {
                        if (FileName.mkdir()) {
                        } else {
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                ////////FolderName
                File file = new File("Test"+"/" +zipEntryName);


اما جواب نداد.
لطفا با یه مثال به م بگید تا متوجه بشم.
مثلا بنده یه فایل دارم به نام Test.zip در حافظه گوشی در پوشه Qruan و می خوام در پوشه  Data در حافظه گوشی unzip کنم
الان باید چی کار کنم.

اگر این فایل در پوشه assets باشه چی کار کنم.
بازم از راهنماییتون ممنون

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لطفا اگر از کد بالا سر در نمی آورید.یه کد دیگه مربوط به کپی و unzip  بهم معرفی کنید

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به خط زیر توجه کنید

private void unzip(String src, String dest){

src: نام فایل موجود در پوشه assets بوده

dest: اینم محل استخراج

نکته: کد بالا برای گرفتن فایل زیپ از assets نیست . و باید تغیر کوچکی در اون بدید

یعنی خط زیر  رو

fileInputStream = new FileInputStream(src);

با کد زیر تغیر دهید

AssetFileDescriptor fileDescriptor = assetManager.openFd(src);
fileInputStream = fileDescriptor.createInputStream();

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بنده کد ها رو مانند زیر وارد کردم اما جواب نداد
 

  unzip("//sdcard/Qran","//sdcard/Qran");

 

قسمتی هم که خطا می داد اسم فایل نوشتم
 

 File FileName = new File("Test");
                if (!FileName.isDirectory()) {
                    try {
                        if (FileName.mkdir()) {
                        } else {
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                ////////FolderName
                File file = new File("Test"+"/" +zipEntryName);


اما جواب نداد.
لطفا با یه مثال به م بگید تا متوجه بشم.
مثلا بنده یه فایل دارم به نام Test.zip در حافظه گوشی در پوشه Qruan و می خوام در پوشه  Data در حافظه گوشی unzip کنم
الان باید چی کار کنم.

اگر این فایل در پوشه assets باشه چی کار کنم.
بازم از راهنماییتون ممنون

در در 1397/01/19, 21:10:28، امین مهدی نژاد گفته است :

به خط زیر توجه کنید


private void unzip(String src, String dest){

src: نام فایل موجود در پوشه assets بوده

dest: اینم محل استخراج

نکته: کد بالا برای گرفتن فایل زیپ از assets نیست . و باید تغیر کوچکی در اون بدید

یعنی خط زیر  رو


fileInputStream = new FileInputStream(src);

با کد زیر تغیر دهید


AssetFileDescriptor fileDescriptor = assetManager.openFd(src);
fileInputStream = fileDescriptor.createInputStream();

«موفق باشید.»

؟؟؟

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...