title: How to read a folder, count the files and copy to new folder
body: <p>A follow up to my previous question - <a href="https://stackoverflow.com/questions/13045326/java-how-to-read-directory-folder-count-and-display-no-of-files-and-copy-to-an">Java: How to read directory folder, count and display no of files and copy to another folder?</a>, I want to read a folder, count the files in the folder (any file type), display the number of files, then copy it to a new folder. However, I am getting the following exception:</p>
  
  <blockquote>
    <p>Exception in thread "main" java.io.FileNotFoundException: C:\project\curFolder (Access is denied)
    C:\project\newFolder already exist: Continuing with process!
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.(FileInputStream.java:120)
        at filetransfer.FileTransfer.copyFiles(FileTransfer.java:54)
        at filetransfer.FileTransfer.checkDir(FileTransfer.java:44)
        at filetransfer.FileTransfer.readDirectory(FileTransfer.java:29)
        at filetransfer.FileTransfer.main(FileTransfer.java:12)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)</p>
  </blockquote>
  
  <p>Please keep in mind I'm a student. This is what I have done so far:</p>
  
  <pre><code>public class FileTransfer {
  
      public static void main(String[] args) throws FileNotFoundException, IOException {
           readDirectory();
      }
  
  public static void readDirectory() throws FileNotFoundException, IOException {
          //create new file object with location of folder
          File curFolder = new File("C:/project/curFolder/");
          int totalFiles = 0;
          //for loop to count the files in the directory using listfiles method
          for (File file : curFolder.listFiles()) {
              //determine if the file object is a file
              if (file.isFile()) {
                  //count files ++
                  totalFiles++;
              }
          }
          //display number of files in directory
          System.out.println("Number of files: " + totalFiles);
          checkDir();
      }
  
      public static void checkDir() throws FileNotFoundException, IOException {
          //check if destination directory exist, if not create directory
          //create new file object with copy folder destination
          File newFolder = new File("C:/project/newFolder/");
          //Check if folder exist: True: Println with message(true and continuing)
          if (newFolder.exists()) {
              System.out.println(newFolder + " already exist: Continuing with process!");
          } else {
              //False: Create Dir
              newFolder.mkdir();
              System.out.println(newFolder + " created!");
          }
          copyFiles();
      }
  
      public static void copyFiles() throws FileNotFoundException, IOException {
          //copy files from specified directory to new directory
          File fromCur = new File("C:/project/curFolder/");
          File toNew = new File("C:/project/newFolder/");
          FileInputStream from = null;
          FileOutputStream to = null;
          try {
              from = new FileInputStream(fromCur);
              to = new FileOutputStream(toNew);
              byte[] buffer = new byte[4096];
              int bytesRead;
  
              while ((bytesRead = from.read(buffer)) != -1) {
                  to.write(buffer, 0, bytesRead);
              }
          } finally {
              if (from != null) {
                  try {
                      from.close();
                  } catch (IOException e) {
                      System.out.println(e.getMessage());
                  }
              }
              if (to != null) {
                  try {
                      to.close();
                  } catch (IOException e) {
                      System.out.println(e.getMessage());
                  }
              }
          }
      }
  }
  </code></pre>