Создать папку в Android
import java.io.File;
File folder = new File(Environment.getExternalStorageDirectory() + "/TollCulator");
boolean success = true;
if (!folder.exists()) {
//Toast.makeText(MainActivity.this, "Directory Does Not Exist, Create It", Toast.LENGTH_SHORT).show();
success = folder.mkdir();
}
if (success) {
//Toast.makeText(MainActivity.this, "Directory Created", Toast.LENGTH_SHORT).show();
} else {
//Toast.makeText(MainActivity.this, "Failed - Error", Toast.LENGTH_SHORT).show();
}
Вышеуказанное должно создать папку на моей SD-карте, если она не существует, если она существует, то ничего не делать. Хотя тост работает на основе условия, но он не создает каталог, когда он не существует. Есть идеи, как это решить?
мой Manifest
выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.testing"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-sdk
android:minSdkVersion="6"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.test.testing.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>
Обновление: я обновил свой манифест, а также обновил свой код, но он все еще не создает папку на моей SD-карте. Имейте в виду, я использую Eclipse и запускаю приложение прямо на моем телефоне (GNex VZW) вместо использования AVD.
2 ответа
Добавьте это разрешение в Manifest
,<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
File folder = new File(Environment.getExternalStorageDirectory() +
File.separator + "TollCulator");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdirs();
}
if (success) {
// Do something on success
} else {
// Do something else on failure
}
когда вы запускаете приложение, идите тоже DDMS->File Explorer->mnt folder->sdcard folder->toll-creation folder
Если вы пытаетесь создать более одной папки в корне SDCard, например, "Environment.getExternalStorageDirectory() + "/Example/Ex App/"
тогда вместо folder.mkdir()
вы бы использовали folder.mkdirs()
Я сделал эту ошибку в прошлом, и я взял навсегда, чтобы понять это