Question

I want to make folders in my sdcard and I have used the code below:

public class Screen extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.welcome);

        operateOnFirstUsage();
    }

    private void operateOnFirstUsage() {

        String state = Environment.getExternalStorageState();
        Log.d("Media State", state);

        if (Environment.MEDIA_MOUNTED.equals(state)) {
            File appDirectory = new File(
                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/");

            Log.d("appDirectroyExist", appDirectory.exists() + "");
            if (!appDirectory.exists()) 
                Log.d("appDir created: ", appDirectory.mkdir() + "");

            File dbDirectory = new File(
                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/Database/");

            Log.d("dbDirectroyExist", dbDirectory.exists() + "");
            if (!dbDirectory.exists())
                Log.d("dbDir created: ", dbDirectory.mkdirs() + "");


            File themesDirectory = new File(
                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/Themes/");
            Log.d("themesDirectroyExist", themesDirectory.exists() + "");
            if (!themesDirectory.exists()) 
                Log.d("themesDir created: ", themesDirectory.mkdirs() + "");

        }
    }
}

Also, I have set the sdcard write permission:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

I've run the application several times and every time I get the LogCat output:

01-09 21:38:13.701: D/Media State(15363): mounted
01-09 21:38:13.701: D/appDirectroyExist(15363): false
01-09 21:38:13.701: D/appDir created:(15363): false
01-09 21:38:13.701: D/dbDirectroyExist(15363): false
01-09 21:38:13.701: D/dbDir created:(15363): false
01-09 21:38:13.701: D/themesDirectroyExist(15363): false
01-09 21:38:13.701: D/themesDir created:(15363): false

I have read similar question, but nothing useful to get. What should I do to get the code running? What is my problem?

Was it helpful?

Solution 5

I don't know why the application acted that way, but finally I overcame this problem by removing and resetting the sdcard write permission in the Android manifest file. Thanks all of you for your kind help and apologize for taking your time.

OTHER TIPS

Edited

Try this:

File mydir = new File(Environment.getExternalStorageDirectory() + "/mydir/");
if(!mydir.exists())
    mydir.mkdirs();
else
    Log.d("error", "dir. already exists");

And recheck permission

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

This is how I created folder MyDir in the Pictures folder od sdcard:

File mediaStorageDir =  new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"MyDir");
mediaStorageDir.mkdirs();

Try this way:

File file=new File(Environment.getExternalStorageDirectory() + File.separator +"MyApp/");
file.mkdirs();

Try this code:) , its simple.

        String fileName = "CallHistory.pdf";

        // create a File object for the parent directory
        File PDF_Directory = new File("/sdcard/MOBstate/");

        // have the object build the directory structure, if needed.          
        PDF_Directory.mkdirs();

        // create a File object for the output file           
         File outputFile = new File(PDF_Directory, fileName);

        // now attach the OutputStream to the file object, instead of a ring representation
         FileOutputStream fos = new FileOutputStream(outputFile);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top