使用递归删除函数deleteDir递归删除指定的目录
public static void deleteDir(String path) { File file = new File(path); if (file.exists()) { if (file.isDirectory()) { File[] files = file.listFiles(); for (File subFile : files) { if (subFile.isDirectory()) deleteDir(subFile.getPath()); else subFile.delete(); } } file.delete(); } }
1、图片与byte[ ]转换
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import javax.imageio.stream.FileImageInputStream; import javax.imageio.stream.FileImageOutputStream; public class FileImageTest { public static void main(String[] args) { //读取路径图片到byte[] FileImageTest obj=new FileImageTest(); String url="D:\\id.jpg"; byte[] a=obj.doImage2byteFun(url); System.out.println(a.length); System.out.println(a); //将byte[]数据写到图片路径 obj.doByte2imageFun(a, "D:\\study\\id.jpg"); } /** * 图片到byte[] * 使用了FileImageInputStream与ByteArrayOutputStream * @param inFileUrl * @return */ public byte[] doImage2byteFun(String inFileUrl) { byte[] data = null; FileImageInputStream input = null; try { input = new FileImageInputStream(new File(inFileUrl)); ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int numBytesRead = 0; while ((numBytesRead = input.read(buf)) != -1) { output.write(buf, 0, numBytesRead); } data = output.toByteArray(); output.close(); input.close(); } catch (FileNotFoundException ex1) { ex1.printStackTrace(); } catch (IOException ex1) { ex1.printStackTrace(); } return data; } /** * byte[]到图片 * 使用了FileImageOutputStream * @param data * @param outFilePath */ public void doByte2imageFun(byte[] data, String outFilePath) { if (data.length < 3 || outFilePath.equals("")) return; try { FileImageOutputStream imageOutput = new FileImageOutputStream( new File(outFilePath)); imageOutput.write(data, 0, data.length); imageOutput.close(); System.out.println("Make Picture success,Please find image in " + outFilePath); } catch (Exception ex) { System.out.println("Exception: " + ex); ex.printStackTrace(); } } }
2、递归删除文件(目录)
public class DeleteFileTest { public static void main(String[] args) { DeleteFileTest obj=new DeleteFileTest(); //测试1: //String url="D:\\workspacewmf\\alibaba\\123"; //obj.doFunOnA(url); //测试2: //String url="D:\\workspacewmf\\alibaba\\124"; //obj.doFunOnB(url); //测试3: String url="D:\\workspacewmf\\alibaba\\128"; obj.doFunOnC(url,""); } /** * 删除根目录下的所有文件(仅删除文件,不删除目录) * @param url */ public void doFunOnA(String filePath){ System.out.println("路径名称:"+filePath); if(StringUtils.isNotBlank(filePath)){ File soureFile=new File(filePath); if(soureFile.exists()){ if(soureFile.isDirectory()){ File[] arr=soureFile.listFiles(); for (File file : arr) { if(file.isDirectory()){ doFunOnA(file.getAbsolutePath()); }else{ System.out.println("第一处删除文件名称:"+file.getName()); file.delete(); } } }else{ //不会执行else语句 } } } } /** * 删除根目录下的所有文件(删除根目录、根目录下的所有子文件和子目录) * @param url */ public void doFunOnB(String filePath){ System.out.println("路径名称:"+filePath); if(StringUtils.isNotBlank(filePath)){ File soureFile=new File(filePath); if(soureFile.exists()){ if(soureFile.isDirectory()){ File[] arr=soureFile.listFiles(); for (File file : arr) { if(file.isDirectory()){ doFunOnB(file.getAbsolutePath()); }else{ System.out.println("第一处删除文件名称:"+file.getName()); file.delete(); } } }else{ //不会执行else语句 } System.out.println("删除目录名称:"+soureFile.getName()); soureFile.delete(); } } } /** * 删除根目录下的所有文件(删除根目录下的所有子文件和子目录,但不删除根目录) * @param url */ public void doFunOnC(String rootPath,String childPath){ if(StringUtils.isNotBlank(rootPath)){ File soureFile; if(StringUtils.isNotBlank(childPath)){ soureFile=new File(childPath); }else{ soureFile=new File(rootPath); } System.out.println("路径名称:"+soureFile.getAbsolutePath()); if(soureFile.exists()){ if(soureFile.isDirectory()){ File[] arr=soureFile.listFiles(); for (File file : arr) { if(file.isDirectory()){ doFunOnC(rootPath,file.getAbsolutePath()); }else{ System.out.println("第一处删除文件名称:"+file.getName()); file.delete(); } } }else{ //不会执行else语句 } } if(!soureFile.getAbsolutePath().equals(rootPath)){ System.out.println("删除目录名称:"+soureFile.getName()); soureFile.delete(); }else{ System.out.println("根目录不删除,根目录名称:"+soureFile.getName()); } } } }