Class util hỗ trợ mục đích của ta:
FileUtil.java
package vn.ds.util;
import java.io.*;
public class FileUtil {
/**
* Coppy data từ một file nguồn vào file đích
*/
public static void copyFile(File source, File dest) throws IOException {
if (!dest.exists()) {
dest.createNewFile();
}
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(source);
out = new FileOutputStream(dest);
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
} catch (Exception ex) {
System.out.println("error");
} finally {
in.close();
out.close();
}
}
/**
* Coppy tất cả các file trong thư mục nguồn đến thư mục đích
*/
public static void copyDirectory(File sourceDir, File destDir)
throws IOException {
if (!destDir.exists()) {
destDir.setWritable(true);
destDir.mkdirs();
} else {
destDir.setWritable(true);
}
File[] children = sourceDir.listFiles();
for (File sourceChild : children) {
String name = sourceChild.getName();
File destChild = new File(destDir, name);
if (sourceChild.isDirectory()) {
copyDirectory(sourceChild, destChild);
} else {
copyFile(sourceChild, destChild);
}
}
}
/**
* xoá một thư mục (bao gồm các file trong thư mục đó)
*/
public static boolean delete(File resource) throws IOException {
if (resource.isDirectory()) {
File[] childFiles = resource.listFiles();
for (File child : childFiles) {
delete(child);
}
}
return resource.delete();
}
/**
* xoá các file trong một thư mục có đuôi mở rộng là một parameter
*
* @param String
* ext
*/
public static void deleteFile(String folder, String ext) {
GenericExtFilter filter = new GenericExtFilter(ext);
File dir = new File(folder);
// list out all the file name with .txt extension
String[] list = dir.list(filter);
if (list.length == 0)
return;
File fileDelete;
for (String file : list) {
String temp = new StringBuffer(folder).append(File.separator)
.append(file).toString();
fileDelete = new File(temp);
boolean isdeleted = fileDelete.delete();
}
}
/**
* lớp filter để để lọc các file có đuôi mở rộng là một parameter được
* truyền vào trong constructor method
*/
public static class GenericExtFilter implements FilenameFilter {
private String ext;
public GenericExtFilter(String ext) {
this.ext = ext;
}
public boolean accept(File dir, String name) {
return (name.endsWith(ext));
}
}
}
Thks & Rgds!!!
Không có nhận xét nào:
Đăng nhận xét