آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

حذف یک فولدر (folder) موجود در حافظه خارجی (external storage)، در برنامه نویسی اندروید

برای حذف یک فولدر (folder) موجود در حافظه خارجی (external storage)، می توانیم از تابع زیر استفاده کنیم :


static public boolean deleteDirectory(File path) {
    if( path.exists() ) {
        File[] files = path.listFiles();
        if (files == null) {
            return true;
        }
        for(int i=0; i<files.length; i++) {
            if(files[i].isDirectory()) {
                deleteDirectory(files[i]);
            } else {
                files[i].delete();
            }
        }
    }
    return( path.delete() );
}

دقت شود که در صورت کدنویسی برای فرآیندی که نیاز به دسترسی به حافظه خارجی (external storage) دارد، باید کدهای زیر درون AndroidManifest.xml نوشته شود (برای اجازه دادن برای نوشتن در حافظه خارجی و یا خواندن از حافظه خارجی) :


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
مثال

به عنوان مثال، کدهای Activity می تواند مشابه کد زیر باشد (نام فولدر را برابر KelidestanFolder در نظر گرفته ایم) :


package com.kelidestan.test;

import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import com.kelidestan.test.R;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                File root = android.os.Environment.getExternalStorageDirectory();
                File dir = new File (root.getAbsolutePath() + "/KelidestanFolder/");
                deleteDirectory(dir);
               
        }

        static public boolean deleteDirectory(File path) {
            if( path.exists() ) {
                File[] files = path.listFiles();
                if (files == null) {
                    return true;
                }
                for(int i=0; i<files.length; i++) {
                    if(files[i].isDirectory()) {
                        deleteDirectory(files[i]);
                    } else {
                        files[i].delete();
                    }
                }
            }
            return( path.delete() );
        }

}

و اجازه های دسترسی را هم به صورت زیر در فایل AndroidManifest.xml ذکر می کنیم :


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kelidestan.test"
    android:versionCode="3"
    android:versionName="1.2" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.kelidestan.test.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
نویسنده علیرضا گلمکانی
شماره کلید 286
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 3 3 0
نوید
۱۳۹۵/۰۵/۲۳
۲۰:۵۷

اسم فولدر رو کجا باید وارد کنیم؟ خیلی مبهمه...

admin
۱۳۹۵/۰۵/۲۵
۱۰:۰۲

سلام.
یک مثال در کلید ذکر شد تا شیوه به کار بردن کدها را بهتر متوجه شوید.

مهران
۱۳۹۸/۰۶/۲۲
۱۲:۴۳

سلام این مثالی که زدید چجوریه 
یعنی به محض ورود به این اکتیوتی فایل پاک میشه ؟

ممکن نیست براش یه کلیک تعریف کنیم ؟
لطفا یه مثال با کلیک بنویسید ممنون

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)