package book.io; import java.io.File; /** * * @author XWZ * 2007-11-27 * 删除文件或目录 */ public class DeleteFileUtil { /** * 删除文件,可以是单个文件或文件夹 * @param fileName 待删除的文件名 * @return 文件删除成功返回true,否则返回false */ public static boolean delete(String fileName){ File file = new File(fileName); if(!file.exists()){ System.out.println("删除文件失败:"+fileName+"文件不存在"); return false; }else{ if(file.isFile()){ return deleteFile(fileName); }else{ return deleteDirectory(fileName); } } } /** * 删除单个文件 * @param fileName 被删除文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deleteFile(String fileName){ File file = new File(fileName); if(file.isFile() && file.exists()){ file.delete(); System.out.println("删除单个文件"+fileName+"成功!"); return true; }else{ System.out.println("删除单个文件"+fileName+"失败!"); return false; } } /** * 删除目录(文件夹)以及目录下的文件 * @param dir 被删除目录的文件路径 * @return 目录删除成功返回true,否则返回false */ public static boolean deleteDirectory(String dir){ //如果dir不以文件分隔符结尾,自动添加文件分隔符 if(!dir.endsWith(File.separator)){ dir = dir+File.separator; } File dirFile = new File(dir); //如果dir对应的文件不存在,或者不是一个目录,则退出 if(!dirFile.exists() || !dirFile.isDirectory()){ System.out.println("删除目录失败"+dir+"目录不存在!"); return false; } boolean flag = true; //删除文件夹下的所有文件(包括子目录) File[] files = dirFile.listFiles(); for(int i=0;i<files.length;i++){ //删除子文件 if(files[i].isFile()){ flag = deleteFile(files[i].getAbsolutePath()); if(!flag){ break; } } //删除子目录 else{ flag = deleteDirectory(files[i].getAbsolutePath()); if(!flag){ break; } } } if(!flag){ System.out.println("删除目录失败"); return false; } //删除当前目录 if(dirFile.delete()){ System.out.println("删除目录"+dir+"成功!"); return true; }else{ System.out.println("删除目录"+dir+"失败!"); return false; } } public static void main(String[] args) { //String fileName = "g:/temp/xwz.txt"; //DeleteFileUtil.deleteFile(fileName); String fileDir = "G:/temp/temp0/temp1"; //DeleteFileUtil.deleteDirectory(fileDir); DeleteFileUtil.delete(fileDir); } } package com.itcast.util; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import org.apache.struts.upload.FormFile; public class SaveUploadFile { /** * * @param formFile 上传的文件 * @param request * @param productTypeName 类别名称 * @param productName 产品名称 * @param savefileName 保存的文件名 * @param ext 上传文件的扩展名 * @throws Exception */ public static void saveProductPic(FormFile formFile, HttpServletRequest request, Integer productTypeId, Integer productID, String savefileName, String ext) throws Exception { if (formFile != null && formFile.getFileSize() > 0) { // 1:保存原大小尺寸的图片 String pathdir = "/image/product/" + productTypeId + "/" + productID + "/prototype";// 构建图片保存的目录 // 得到图片保存目录的真实路径 String realpathdir = request.getSession().getServletContext() .getRealPath(pathdir); // 创建文件目录 File savedir = new File(realpathdir); // 如果目录不存在就创建 if (!savedir.exists()) { savedir.mkdirs(); } File imageFile = new File(savedir, savefileName); FileOutputStream fops = new FileOutputStream(imageFile); // 将上传的文件信息保存到相应的文件目录里 fops.write(formFile.getFileData()); fops.close(); // 2:保存原压缩尺寸的图片 String path140 = "/image/product/" + productTypeId + "/" + productID + "/140x";// 构建图片保存的目录 // 得到图片保存目录的真实路径 String realpath140 = request.getSession().getServletContext() .getRealPath(path140); // 创建文件目录 File savedir140 = new File(realpath140); // 如果目录不存在就创建 if (!savedir140.exists()) { savedir140.mkdirs(); } File imageFile140 = new File(savedir140, savefileName); ImageSizer.resize(imageFile, imageFile140, 140, ext); } } /** * * @param formFile 上传的品牌图片文件 * @param request * @param saveName 保存的文件的名字 * @param ext 保存的文件的扩展名 * @return * @throws FileNotFoundException * @throws IOException */ public static String saveBrandPic(FormFile formFile, HttpServletRequest request, String saveName, String ext) throws FileNotFoundException, IOException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH"); String savepath = "/image/brand/" + sdf.format(new Date());//构建图片保存的目录 //得到图片保存目录的真实路径 String realsavepath = request.getSession().getServletContext() .getRealPath(savepath); //创建文件目录 File logosavedir = new File(realsavepath); //如果目录不存在就创建 if (!logosavedir.exists()) { logosavedir.mkdirs(); } FileOutputStream fops = new FileOutputStream(new File(realsavepath, saveName)); fops.write(formFile.getFileData()); fops.close(); return savepath; } }