Crear carpeta en Android [duplicar]


Esta pregunta ya tiene una respuesta aquí:

 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();
    }

Lo anterior debe crear una carpeta en mi tarjeta SD si no existe, si lo hace, entonces no hacer nada. Aunque el toast funciona basado en la condición pero no crea un directorio cuando no existe. Cualquier idea de cómo resolverlo?

Mi Manifest se ve así:

<?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>

Actualizar: He actualizado mi manifiesto, así como actualizado mi código, pero todavía no está creando la carpeta en mi tarjeta SD. Tenga en cuenta que estoy usando Eclipse y ejecutando la aplicación directamente en mi teléfono (GNex VZW) en lugar de usar un AVD.

Author: Si8, 2013-07-22

2 answers

Agregar este permiso en 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 
}

Cuando u ejecuta la aplicación ir demasiado DDMS- > Explorador de archivos- > mnt folder->sdcard folder- > toll-creation folder

 91
Author: KOTIOS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-12 09:56:12

Si está tratando de hacer más de una carpeta en la raíz de la tarjeta SD, ex. "Environment.getExternalStorageDirectory() + "/Example/Ex App/"

Entonces en lugar de folder.mkdir() usarías folder.mkdirs()

He cometido este error en el pasado y me llevó una eternidad averiguarlo

 13
Author: Alankrut Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-22 18:53:41