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

خواندن و نوشتن در حافظه دستگاه ، جاوا اندروید استدیو


berayan

سوال

سلام

میشه یکی نحوه ساخت پوشه و ذخیره و خواندن فایل در api 33 به بعد رو توضیح بده ، متدهای قبلی کار نمیکنن

از خود سایت مرجع چیزی نفهمیدم

یه دوره هم معرفی کنید تهیه کنم خوبه ،

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

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

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

  • 0

کسی که جواب مارو نداد  ، ولی این کدشه ، اگر کسی لازم داشت 

 

       //..........................
        //کد زیر : یه کپی از فایل  میگیره
     // مثال
//..........................
        File copefail ="new File("data/data/com.example.test/foldername/"+ "namefail);
        FileInputStream in = null;
        try {
            in = new FileInputStream(copefail);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        //.........................
        // نام مورد نظرمان برای فایلی که از آن کپی می شود (ساخته می شود) را در خط زیر از کدها مشخص کرده ایم
        //.........................
        String filename = "new_fail_name" ;
        //.........................
        // ساخت و بررسی فولدر بک اپ
        //.........................
        new_folder(G.ST_name_folder_backup);
        // ........................
        // ذخیره فایل
        // و مسیر کامل ذخیره آن را به صورت زیر، در یک متغیر از نوع File مشخص کرده ایم
        //.........................
        save_fail(filename);

تابع ساخت فولدر

  //==============================================================================================
    // ساخت فولدر در اندروید 10 به بعد
    //==============================================================================================
    // به علت قوانین گوگل فقط میتونیم به فولدر های عمومی دسترسی داشته باشیم

    // با استفاده از کد زیر، آدرس مسیر حافظه خارجی (external storage) را به دست آورده ایم
    // Environment.getExternalStorageDirectory();
    //نام پوشه ای که باید فایل در آن کپی شود را در خط زیر تعیین کرده ایم
    // FolderName
    // با کد زیر، مسیر کامل پوشه را به صورت متغیر File خواهیم داشت
    // File dir = ........
    // با کدهای زیر، تعیین کرده ایم که اگر پوشه مورد نظر وجود ندارد، ساخته شود

    public static File new_folder(String FolderName)
    {
        File dir = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
        {
            dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" + FolderName);
        }
        else
        {
            dir = new File(Environment.getExternalStorageDirectory() + "/" + FolderName);
        }

        // Make sure the path directory exists.
        if (!dir.exists())
        {
            // Make it, if it doesn't exit
            boolean success = dir.mkdirs();
            if (!success)
            {
                dir = null;
            }
        }
        return dir;
    }

ذخیر فایل در بخش اسناد دستگاه در فولدر مورد نظر

//==============================================================================================
    // ذخیره فایل
    // و مسیر کامل ذخیره آن را به صورت زیر، در یک متغیر از نوع File مشخص کرده ایم
    //==============================================================================================
    public static File save_fail(String failName)
    {
        File f = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
        {
            f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" +" namefolder", failName);
        }
        else
        {
            f = new File(Environment.getExternalStorageDirectory() + "/" + "name_folde" failName);
        }

        try {
            OutputStream myOutput = new FileOutputStream(f);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        try {
            // InputStream myInput2 = myContext.getAssets ().open ( "databases/romino" );
            OutputStream myOutput = new FileOutputStream(f);
            byte[] myBuffer = new byte[1024];
            int lengh;
            while ((lengh = in.read(myBuffer)) > 0) {
                myOutput.write(myBuffer, 0, lengh);
            }
            myOutput.flush();
            myOutput.close();
            in.close();

        } catch (Exception ex) {
        }

        Message_class.message(G.context, " انجام شد");
        return f;
    }

 

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

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

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