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

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

  1. #1

    Question وارد کردن یک پوشه به داخل فایل زیپ در اندروید

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


    من یک برنامه دارم با اکلیپس نوشتم

    میخوام در برنامه پوشه ای از حافظه داخلی گوشی رو به داخل فایل زیپ بندازم

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


    خیلی توی نت گشتم فقط کار با فایل های در حافظه خارجی هستش ولی من حافظه داخلی میخوام


    کد هاشو نمیدونم ممنونم میشم راهنمایی کنید

  2. #2
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

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

    هر چند این سوال رو باید در انجمن اندروید مطرح کنید، اما از اونجایی که اندروید برای اینکار از کلاس های مشابه جاوا استاندارد استفاده میکنه.

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

    int size;
    byte[] buffer = new byte[64 * 1024];


    try (BufferedInputStream input = new BufferedInputStream(new FileInputStream("input.txt"));
    ZipOutputStream output = new ZipOutputStream(new FileOutputStream("yourzipfile.zip"))) {
    output.putNextEntry(new ZipEntry("newFile.txt"));
    while ((size = input.read(buffer)) != -1) {
    output.write(buffer, 0, size - 1);
    }
    output.flush();
    output.closeEntry();
    } catch (FileNotFoundException ex) {
    //File Not Found
    } catch (IOException ex) {
    //IOException
    }


    نکته دیگه من بر اساس پیاده سازی جاوا استاندارد نوشتم، در صورتی که اندروید پیاده سازی خودشو داره. به عنوان مثال در مستندات اندروید اومده:
    if a security manager exists and its checkRead method doesn't allow read access to the file.
    که با پیاده سازی جاوا متفاوته و در چنین حالتی SecurityException میده که میتونید catch کنید. نباید زیاد تفاوت داشته باشه، بهتره کد رو تست کنید.
    در کل نمیدونم در اندروید فایل جدید میسازه یا به فایل قبلی اضافه میکنه.

    اما شما گفتید مشکلتون کار با حافظه داخلی هست. بحثی که وجود داره و واقعا برای خودمم گنگ بود، اینکه حافظه داخلی که ما میگیم /storage/sdcard0 در اصل شبیه سازی حافظه خارجی روی حافظه داخلی است. برای همین فکر کنم اگر از Storage.getExternalVolumes استفاده کنید بتونید لیستش رو ببینید. چون فکر کنم باز بین گوشی واقعی و شبیه ساز کامپیوتر تو مسیر فایل تفاوت وجود داره.
    اما روی گوشی واقعی طبق سرچی که زدم آدرس هایی که ما به عنوان حافظه داخلی میدونیم :

    برای اندروید نسخه کمتر از 4: /mnt/sdcard
    برای نسخه های 4 و بالاتر: /storage/sdcard0

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

    Environment.getExternalStoragePublicDirectory() که باید نوع فولدر رو مشخص کنید (مثل دانلود و...)
    Environment.getExternalStorageDirectory()

    با هر دوش میشه مسیر رو بدست آورد. حتما قبلش مستنداتش رو بخونید چون توضیحاتی داره.

تاپیک های مشابه

  1. سوال: ايمپورت كردن دسته اي به داخل فايل MDB
    نوشته شده توسط connector در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: شنبه 07 فروردین 1389, 09:33 صبح
  2. سوال: وارد کردن یک سورس کد داخل سورس برنامه
    نوشته شده توسط sysman_20 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 07 خرداد 1388, 09:34 صبح
  3. وارد کردن یک ایتم به کامبو باکس به وسیله xml
    نوشته شده توسط rezapassword در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 0
    آخرین پست: سه شنبه 03 دی 1387, 09:17 صبح
  4. اضافه کردن یک برنامه به اول فایل exe
    نوشته شده توسط EMANOEL در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: پنج شنبه 26 مهر 1386, 21:12 عصر
  5. اضافه کردن یک مقدار به انتهای فایل exe
    نوشته شده توسط Future در بخش برنامه نویسی در Delphi
    پاسخ: 12
    آخرین پست: سه شنبه 25 بهمن 1384, 15:09 عصر

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

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