Subversion Repositories bacoAlunos

Rev

Rev 1306 | Rev 1675 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package jomm.utils;

import java.io.*;
import java.util.zip.ZipFile;
import java.util.zip.ZipException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.util.Date;
import java.util.Enumeration;

/**
 * @author Jorge Machado
 * @date 20/Jun/2008
 * @see jomm.utils
 */

public class FilesUtils
{
    public static 1.5.0/docs/api/java/lang/String.html">String getExtension(1.5.0/docs/api/java/lang/String.html">String filename)
    {
        1.5.0/docs/api/java/lang/String.html">String extension = "";
        if(filename == null)
            return extension;
        if(filename.indexOf(".")>=0)
            extension = filename.substring(filename.lastIndexOf(".") + 1);
        return extension;
    }

    public static void copy(5+0%2Fdocs%2Fapi+InputStream">InputStream src, 1.5.0/docs/api/java/lang/String.html">String outputPath) throws 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        1.5.0/docs/api/java/io/FileOutputStream.html">FileOutputStream out = new 1.5.0/docs/api/java/io/FileOutputStream.html">FileOutputStream(new 1.5.0/docs/api/java/io/File.html">File(outputPath));
        StreamsUtils.inputStream2OutputStream(src,out);
    }


    public static void zipFolder(1.5.0/docs/api/java/lang/String.html">String folder, 1.5.0/docs/api/java/lang/String.html">String outFilename) throws 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        1.5.0/docs/api/java/util/zip/ZipOutputStream.html">ZipOutputStream out = new 1.5.0/docs/api/java/util/zip/ZipOutputStream.html">ZipOutputStream(new 1.5.0/docs/api/java/io/FileOutputStream.html">FileOutputStream(outFilename));
        zipFolder(folder,"",out);
        out.close();
    }

    private static void zipFolder(1.5.0/docs/api/java/lang/String.html">String folder, 1.5.0/docs/api/java/lang/String.html">String relativePath, 1.5.0/docs/api/java/util/zip/ZipOutputStream.html">ZipOutputStream out) throws 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        1.5.0/docs/api/java/io/File.html">File zipFolder = new 1.5.0/docs/api/java/io/File.html">File(folder);
        // Compress the files
        1.5.0/docs/api/java/io/File.html">File[] files = zipFolder.listFiles();
        for(1.5.0/docs/api/java/io/File.html">File file : files)
        {
            if (file.isDirectory())
            {
                zipFolder(folder + "/" + file.getName(), relativePath + "/" + file.getName(),out);
            }
            else
            {
                1.5.0/docs/api/java/io/FileInputStream.html">FileInputStream in = new 1.5.0/docs/api/java/io/FileInputStream.html">FileInputStream(file);
                // Add ZIP entry to output stream.
                out.putNextEntry(new 1.5.0/docs/api/java/util/zip/ZipEntry.html">ZipEntry(relativePath + "/" +  file.getName()));
                // Transfer bytes from the file to the ZIP file
                int len;
                byte[] buf = new byte[1024];
                while ((len = in.read(buf)) > 0)
                {
                    out.write(buf, 0, len);
                }
                // Complete the entry
                out.closeEntry();
                in.close();
            }
        }
    }

    public static synchronized void deleteOldContent(1.5.0/docs/api/java/lang/String.html">String folder)
    {
        deleteOldContent(new 1.5.0/docs/api/java/io/File.html">File(folder));
    }
   
    public static synchronized void deleteOldContent(1.5.0/docs/api/java/io/File.html">File folder)
    {
        if(folder.isDirectory())
        {
            for(1.5.0/docs/api/java/io/File.html">File f : folder.listFiles())
            {
                deleteOld(f);
            }
        }
    }
    public static void delete(1.5.0/docs/api/java/lang/String.html">String deleteFile)
    {
        delete(new 1.5.0/docs/api/java/io/File.html">File(deleteFile));
    }
    public static void delete(1.5.0/docs/api/java/io/File.html">File toDelete)
    {
        if(toDelete.isFile())
            toDelete.delete();
        else
        {
            for(1.5.0/docs/api/java/io/File.html">File f : toDelete.listFiles())
            {
                delete(f);
            }
            toDelete.delete();
        }
    }

    public static final long hourMili = 1000 * 60 * 60 * 24;

    public static boolean deleteOld(1.5.0/docs/api/java/io/File.html">File toDelete)
    {
        boolean allEliminated = true;
        if(toDelete.isFile() && 1.5.0/docs/api/java/lang/System.html">System.currentTimeMillis() - toDelete.lastModified() > hourMili)
            toDelete.delete();
        else if(toDelete.isFile())
            allEliminated = false;
        else
        {
            for(1.5.0/docs/api/java/io/File.html">File f : toDelete.listFiles())
            {
                if(!deleteOld(f))
                    allEliminated = false;
            }
            if(allEliminated)
                toDelete.delete();
        }
        return allEliminated;
    }
}