tags:

views:

2662

answers:

1

Im tyring to save my file to the following location
FileOutputStream fos = new FileOutputStream("/sdcard/Wallpaper/"+fileName); but im getting an exception java.io.FileNotFoundException
But when I put the path as "/sdcard/" it works.

Now im assuming that Im not able to create directory automatically this way.

Can someone suggest how to create a directory and sub-directory via code.

+12  A: 

If you create a File object that wraps the top-level directory you can call it's mkdirs() method to build all the needed directories. Something like:

// create a File object for the parent directory
File wallpaperDirectory = new File("/sdcard/Wallpaper/");
// have the object build the directory structure, if needed.
wallpaperDirectory.mkdirs();
// create a File object for the output file
File outputFile = new File(wallpaperDirectory, filename);
// now attach the OutputStream to the file object, instead of a String representation
FileOutputStream fos = new FileOutputStream(outputFile);

Note: It might be wise to use Environment.getExternalStorageDirectory() for getting the "SD Card" directory as this might change if a phone comes along which has something other than an SD Card (such as built-in flash, a'la the iPhone). Either way you should keep in mind that you need to check to make sure it's actually there as the SD Card may be removed.

fiXedd
Thanks fixXedd. It worked perfectly.
Funkyidol
No problem. Happy to help.
fiXedd