حذف یک فولدر (folder) موجود در حافظه خارجی (external storage)، در برنامه نویسی اندروید
برای حذف یک فولدر (folder) موجود در حافظه خارجی (external storage)، می توانیم از تابع زیر استفاده کنیم :
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.READ_EXTERNAL_STORAGE" />
به عنوان مثال، کدهای Activity می تواند مشابه کد زیر باشد (نام فولدر را برابر KelidestanFolder در نظر گرفته ایم) :
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 ذکر می کنیم :
<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>
اسم فولدر رو کجا باید وارد کنیم؟ خیلی مبهمه...
سلام.
یک مثال در کلید ذکر شد تا شیوه به کار بردن کدها را بهتر متوجه شوید.
سلام این مثالی که زدید چجوریه
یعنی به محض ورود به این اکتیوتی فایل پاک میشه ؟
ممکن نیست براش یه کلیک تعریف کنیم ؟
لطفا یه مثال با کلیک بنویسید ممنون