package com.timetask.action;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.FileUtils;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import com.vrs.user.util.Tools;
public class TimeTaskAction {
/**
* 定时备份MP4到挂载盘
*/
public void backupMP4() {
System.out.println("备份MP4文件开始");
String mountpath=Tools.getmountpath("mountpath");
if(Tools.isWindowsOS()){
moveFiles("F://测试demo","F://测试demo1");
}else {
moveFiles("/vrs/web/vod/mp4/",mountpath);
}
System.out.println("备份MP4文件结束");
}
/**
* 定时删除vod/mp4路径下文件
*/
public void removeMP4() {
System.out.println("定时删除MP4文件开始");
String filepath="/vrs/web/vod/mp4/";
String mountpath=Tools.getmountpath("mountpath");
File file=new File(filepath);
File[] files=file.listFiles();
for (File file2 : files) {
if(new File(mountpath+"/"+file2.getName()).exists()){
//Long creattiem=getCreateTime(file2);
Date date1= getCreateTime(file2);
Date date2=new Date();
int ss= getDaysBetweenDate(date2,date1);
System.out.println("文件距离今天"+ss+"天");
if(ss>180){
file2.delete();
}
}
}
System.out.println("定时删除MP4文件结束");
}
public static void main(String[] args) {
/*File file=new File("F:\\etwealth\\考生(1).xlsx");
Date date1= getCreateTime(file);
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date1);
System.out.println(format);
Date date2=new Date();
int ss= getDaysBetweenDate(date2,date1);
System.out.println(ss);*/
moveFiles("F://测试demo","F://测试demo1");
}
public static int getDaysBetweenDate(Date d1, Date d2){
int days;
days = (int) ((d1.getTime() - d2.getTime())/(24*60*60*1000));
return days;
}
/**
* 读取文件创建时间
*/
public static Date getCreateTime(File delfile){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
long time = delfile.lastModified();
cal.setTimeInMillis(time);
String strTime=cal.getTime().toLocaleString();
Date wenjian = null;
try {
wenjian = df.parse(strTime);
System.out.println("wenjian"+wenjian);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return wenjian;
//输出:创建时间 2018-2-23 14:30:28
}
/**
* @param sourcePath
* @param newPath
* @throws IOException
* 文件夹复制
*/
public static void moveFiles(String oldPath, String newPath) {
String[] filePaths = new File(oldPath).list();
if (filePaths.length > 0) {
if (!new File(newPath).exists()) {
new File(newPath).mkdirs();
}
for (int i = 0; i < filePaths.length; i++) {
if (new File(oldPath + File.separator + filePaths[i]).isDirectory()) {
moveFiles(oldPath + File.separator + filePaths[i], newPath + File.separator + filePaths[i]);
} else if (new File(oldPath + File.separator + filePaths[i]).isFile()) {
// 复制文件到另一个目录
try {
copyFile(oldPath + File.separator + filePaths[i], newPath+File.separator+ filePaths[i]);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
/**
* @param oldPath
* @param newPath
* @throws IOException
* 文件复制
*/
public static void copyFile(String oldPath, String newPath) throws IOException {
//1.文件是否存在
//2.文件是否已修改
File oldFile = new File(oldPath);
File file = new File(newPath);
if (!file.exists()) { //文件不存在
FileInputStream in = new FileInputStream(oldFile);
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len = 0;
while((len = in.read(buffer)) != -1){
out.write(buffer,0,len);
}
in.close();
out.close();
}else{ //文件是否已修改
Date date1= getCreateTime(oldFile);
Date date2=new Date();
int ss= getDaysBetweenDate(date2,date1);
System.out.println("文件距离今天"+ss+"天");
if (ss<1) {
FileInputStream in = new FileInputStream(oldFile);
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len = 0;
while((len = in.read(buffer)) != -1){
out.write(buffer,0,len);
}
in.close();
out.close();
}
}
}
}
java实现文件备份
最新推荐文章于 2024-07-06 02:18:24 发布