Создать папку в 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()

Я сделал эту ошибку в прошлом, и я взял навсегда, чтобы понять это

Другие вопросы по тегам