package com.icss.saft.service; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.io.*; import java.text.SimpleDateFormat; import java.util.Date; @RestController public class Controller2 { @RequestMapping(value = "from",method = RequestMethod.GET) public void upload() throws Exception { String url1 = "F:\\xml"; String url2 = "E:\\Xmldemo\\src\\main\\webapp\\WEB-INF\\jsp\\20180419205900.xml"; File file1 = new File(url2); if(!file1.exists()){ file1.createNewFile(); }else { StringBuffer buffer = new StringBuffer(url2); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = new Date(); String dates = format.format(date); buffer.insert(16,dates); url2 = buffer.toString(); file1 = new File(url2); file1.createNewFile(); } File[] file = (new File(url1)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { //copyFile(file[i],new File(url2+file[i].getName())); copyFile(file[i],new File(url2)); } if (file[i].isDirectory()) { String sourceDir=url1+File.separator+file[i].getName(); String targetDir=url2+File.separator+file[i].getName(); copyDirectiory(sourceDir, targetDir); } } } public static void copyFile(File sourceFile,File targetFile) throws IOException { FileInputStream input = new FileInputStream(sourceFile); BufferedInputStream inBuff=new BufferedInputStream(input); FileOutputStream output = new FileOutputStream(targetFile); BufferedOutputStream outBuff=new BufferedOutputStream(output); byte[] b = new byte[1024 * 5]; int len; while ((len =inBuff.read(b)) != -1) { outBuff.write(b, 0, len); } outBuff.flush(); inBuff.close(); outBuff.close(); output.close(); input.close(); } public static void copyDirectiory(String sourceDir, String targetDir) throws IOException { (new File(targetDir)).mkdirs(); File[] file = (new File(sourceDir)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { File sourceFile=file[i]; File targetFile=new File(new File(targetDir).getAbsolutePath() +File.separator+file[i].getName()); copyFile(sourceFile,targetFile); } if (file[i].isDirectory()) { String dir1=sourceDir + "/" + file[i].getName(); String dir2=targetDir + "/"+ file[i].getName(); copyDirectiory(dir1, dir2); } } } }
在上传到项目下时,要根据时间来命名上传的文件,下边这段代码为自动生成一个以时间命名的文件名字:
if(!file1.exists()){ file1.createNewFile(); }else { StringBuffer buffer = new StringBuffer(url2); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = new Date(); String dates = format.format(date); buffer.insert(16,dates); url2 = buffer.toString(); file1 = new File(url2); file1.createNewFile(); }