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
;
}
}