I have an application and associated data with it, I am able to copy this data from my **Assest** folder onto the **SD Card**, that is flawless. But I want to improve on this code and allow the user to specify the location on SD Card, as in where she wants to store the data. Here is my code, please suggest modifications. (I want to generate a similar popup, when a file is being downloaded from the internet and a pop-up asks the user to specify the download location, where I am confused is whether I have to custom make this pop-up or it is inbuilt) Following is my code: 

```
  private void copyAssets() {
    AssetManager assetManager = getAssets();
    String[] files = null;
    try {
        files = assetManager.list("");
    } catch (IOException e) {
        Log.e("tag", e.getMessage());
    }
    for(String filename : files) {
        InputStream in = null;
        OutputStream out = null;
        try {
          in = assetManager.open(filename);
          out = new FileOutputStream("/sdcard/edu/" + filename);
          copyFile(in, out);
          in.close();
          in = null;
          out.flush();
          out.close();
          out = null;
        } catch(Exception e) {
            Log.e("tag", e.getMessage());
        }       
    }
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
    byte[] buffer = new byte[1024];
    int read;
    while((read = in.read(buffer)) != -1){
      out.write(buffer, 0, read);
    }
}
public void MakeFolder(){
File direct = new File(Environment.getExternalStorageDirectory() + "/edu");

if(!direct.exists())
 {
     if(direct.mkdir()){ //directory is created;
         copyAssets();
 }
}

```