lemval
2012-01-31 1c30dad2115fc513791d8a5b292ad0f7d7b85749
src/com/gitblit/utils/FileUtils.java
@@ -15,11 +15,14 @@
 */
package com.gitblit.utils;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
@@ -69,7 +72,7 @@
   public static void writeContent(File file, String content) {
      try {
         OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream(file),
               Charset.forName("UTF-8"));
               Charset.forName("UTF-8"));
         BufferedWriter writer = new BufferedWriter(os);
         writer.append(content);
         writer.close();
@@ -103,4 +106,47 @@
      }
      return length;
   }
   /**
    * Copies a file or folder (recursively) to a destination folder.
    *
    * @param destinationFolder
    * @param filesOrFolders
    * @return
    * @throws FileNotFoundException
    * @throws IOException
    */
   public static void copy(File destinationFolder, File... filesOrFolders)
         throws FileNotFoundException, IOException {
      destinationFolder.mkdirs();
      for (File file : filesOrFolders) {
         if (file.isDirectory()) {
            copy(new File(destinationFolder, file.getName()), file.listFiles());
         } else {
            File dFile = new File(destinationFolder, file.getName());
            BufferedInputStream bufin = null;
            FileOutputStream fos = null;
            try {
               bufin = new BufferedInputStream(new FileInputStream(file));
               fos = new FileOutputStream(dFile);
               int len = 8196;
               byte[] buff = new byte[len];
               int n = 0;
               while ((n = bufin.read(buff, 0, len)) != -1) {
                  fos.write(buff, 0, n);
               }
            } finally {
               try {
                  bufin.close();
               } catch (Throwable t) {
               }
               try {
                  fos.close();
               } catch (Throwable t) {
               }
            }
            dFile.setLastModified(file.lastModified());
         }
      }
   }
}