LVN2000

copyAll

Oct 23rd, 2020 (edited)
875
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.FilenameFilter;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8.  
  9. public class Bai7 {
  10.  
  11.     public static void copyAll(String sDir, String dDir, String... ext) throws IOException {
  12.         File sourceDir = new File(sDir);
  13.         if (!sourceDir.exists())
  14.             return;
  15.  
  16.         File desDir = new File(dDir);
  17.         if (!desDir.exists())
  18.             desDir.mkdirs();
  19.  
  20.         for (File f : sourceDir.listFiles()) {
  21.             if (f.isFile() && isExtended(f, ext)) {
  22.                 InputStream fis = new FileInputStream(f);
  23.                 OutputStream fos = new FileOutputStream(desDir.getAbsolutePath() + "\\" + f.getName());
  24.                 byte[] data = new byte[1024 * 1024 * 10]; // 10 MB
  25.                 int readBytes;
  26.                 while ((readBytes = fis.read(data)) != -1)
  27.                     fos.write(data, 0, readBytes);
  28.                 fis.close();
  29.                 fos.close();
  30.             } else if (f.isDirectory())
  31.                 copyAll(f.getAbsolutePath(), dDir, ext);
  32.         }
  33.     }
  34.  
  35.     public static boolean isExtended(File file, String... ext) {
  36.         if (!file.exists() || !file.isFile())
  37.             return false;
  38.  
  39.         for (String e : ext)
  40.             if (file.getName().endsWith(e))
  41.                 return true;
  42.         return false;
  43.     }
  44.  
  45.     public static void main(String[] args) throws IOException {
  46.         String sDir = "Source Directory Path";
  47.         String dDir = "Destination Directory Path";
  48.         String[] ext = { ".pdf", ".docx", ".xlsx" };
  49.         long start = System.currentTimeMillis();
  50.         copyAll(sDir, dDir, ext);
  51. //      copyAll(sDir, dDir, ".txt", ".pptx");
  52.         System.out.println(System.currentTimeMillis() - start + "ms");
  53.     }
  54.  
  55. }
  56.  
RAW Paste Data