Copy files from a folder of SD card into another folder of SD card Copy files from a folder of SD card into another folder of SD card android android

Copy files from a folder of SD card into another folder of SD card


An improved version of that example:

// If targetLocation does not exist, it will be created.public void copyDirectory(File sourceLocation , File targetLocation)throws IOException {    if (sourceLocation.isDirectory()) {        if (!targetLocation.exists() && !targetLocation.mkdirs()) {            throw new IOException("Cannot create dir " + targetLocation.getAbsolutePath());        }        String[] children = sourceLocation.list();        for (int i=0; i<children.length; i++) {            copyDirectory(new File(sourceLocation, children[i]),                    new File(targetLocation, children[i]));        }    } else {        // make sure the directory we plan to store the recording in exists        File directory = targetLocation.getParentFile();        if (directory != null && !directory.exists() && !directory.mkdirs()) {            throw new IOException("Cannot create dir " + directory.getAbsolutePath());        }        InputStream in = new FileInputStream(sourceLocation);        OutputStream out = new FileOutputStream(targetLocation);        // Copy the bits from instream to outstream        byte[] buf = new byte[1024];        int len;        while ((len = in.read(buf)) > 0) {            out.write(buf, 0, len);        }        in.close();        out.close();    }}

Got some better error handling and better handles if the passed target file lies in a directory that does not exist.


See the example here. The sdcard is external storage, so you can access it via getExternalStorageDirectory.


yes it is possible and im using below method in my code . Hope use full to you:-

public static void copyDirectoryOneLocationToAnotherLocation(File sourceLocation, File targetLocation)        throws IOException {    if (sourceLocation.isDirectory()) {        if (!targetLocation.exists()) {            targetLocation.mkdir();        }        String[] children = sourceLocation.list();        for (int i = 0; i < sourceLocation.listFiles().length; i++) {            copyDirectoryOneLocationToAnotherLocation(new File(sourceLocation, children[i]),                    new File(targetLocation, children[i]));        }    } else {        InputStream in = new FileInputStream(sourceLocation);        OutputStream out = new FileOutputStream(targetLocation);        // Copy the bits from instream to outstream        byte[] buf = new byte[1024];        int len;        while ((len = in.read(buf)) > 0) {            out.write(buf, 0, len);        }        in.close();        out.close();    }}