How to copy my files from one directory to another directory?

后端 未结 3 1393
梦毁少年i
梦毁少年i 2021-02-15 13:18

I am working on Android. My requirement is that I have one directory with some files, later I downloaded some other files into another directory and my intention is to copy all

相关标签:
3条回答
  • 2021-02-15 13:24

    You have to use also below code:

    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();
        }
    
    }
    
    0 讨论(0)
  • 2021-02-15 13:39

    Apache FileUtils does this very simple and nicely..

    include Apache commons io package add commons-io.jar

    or

    commons-io android gradle dependancy

     compile 'commons-io:commons-io:2.4'
    

    Add this code

    String sourcePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TongueTwister/sourceFile.3gp";
            File source = new File(sourcePath);
    
            String destinationPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TongueTwister/destFile.3gp";
            File destination = new File(destinationPath);
            try 
            {
                FileUtils.copyFile(source, destination);
            } 
            catch (IOException e) 
            {
                e.printStackTrace();
            }
    
    0 讨论(0)
  • 2021-02-15 13:47
        void copyFile(File src, File dst) throws IOException {
           FileChannel inChannel = new FileInputStream(src).getChannel();
           FileChannel outChannel = new FileOutputStream(dst).getChannel();
           try {
              inChannel.transferTo(0, inChannel.size(), outChannel);
           } finally {
              if (inChannel != null)
                 inChannel.close();
              if (outChannel != null)
                 outChannel.close();
           }
        }
    

    I can't remember where I found this, but it was from a useful article I used to backup a SQLite database.

    0 讨论(0)
提交回复
热议问题