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を使用しており、AVDを使用する代わりに、アプリを電話(GNex VZW)に直接実行していることに留意してください。
この許可を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
SDカードのルートに複数のフォルダーを作成しようとしている場合、ex。 Environment.getExternalStorageDirectory() + "/Example/Ex App/"
folder.mkdir()
の代わりにfolder.mkdirs()
を使用します
私は過去にこの過ちを犯しました、そして、私はそれを理解するために永遠にかかりました。