Java写一个自动删除指定文件的小程序

时间:2019-03-13
本文章向大家介绍Java写一个自动删除指定文件的小程序,主要包括Java写一个自动删除指定文件的小程序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一,由于硬件设备每天会产生40-50G的容量,而硬盘只有6百多G,只能采用这个方式,
思路,第一步,先删除指定文件。
本着全自动化的无操作!
第二步,每天都要进行删除。–定时器!
第三步,把jar打包成.exe

当然,由于时间关系并不完善。
如下:没有设置,添加其他路径,
筛选格式,指定名称等功能。
代码如下。

package main;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingWorker;

import javafx.scene.control.DatePicker;

public class home {
	public static void main(String[] args) {
//			delPahtFile();
		// 主窗体
		JFrame f = new JFrame("删除IPTV文件");
		// 主窗体设置大小
		f.setSize(400, 300);
		// 主窗体设置位置
		f.setLocation(200, 200);
		// 主窗体中的组件设置为绝对定位
		f.setLayout(new BorderLayout());
		// 按钮组件
		JButton b = new JButton("一键删除视频文件");
		b.setBounds(50, 50, 280, 30);
		//文本框
		 JLabel l = new JLabel("此程序将会在每天的8点,进行文件删除!");
	        //文字颜色
	        l.setForeground(Color.red);
	        l.setBounds(50, 50, 280, 30);
		// 同时设置组件的大小和位置
		
		// 把按钮加入到主窗体中
		f.add(b, BorderLayout.NORTH);
		f.add(l, BorderLayout.NORTH);
		timer4();
		b.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub

				SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {

					@Override
					protected Void doInBackground() throws Exception {
						// TODO Auto-generated method stub

						delPahtFile();
						return null;
					}

				};
				worker.execute();
				 

			}
		});
		// 关闭窗体的时候,退出程序
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 让窗体变得可见
		f.setVisible(true);

	}

	public void xianc() {
		SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {

			@Override
			protected Void doInBackground() throws Exception {
				// TODO Auto-generated method stub
				
		 
				return null;
			}

		};
		worker.run();
	}
	public static void delPahtFile() {
		File file = new File("D:\\IPTV\\live\\html");
		// 判断是不是文件夹
		boolean isDirectory = file.isDirectory();
		if (isDirectory) {
			String[] files = file.list();
			/// 循环下面所有的文件
			for (String path : files) {
				String afterPointLetter = path.substring(path.lastIndexOf(".") + 1, path.length());
				if (forbidFormat(afterPointLetter)) {
					System.out.println("D:\\IPTV\\live\\html\\" + path);
					File deleteFile = new File("D:\\IPTV\\live\\html\\" + path);
					if (deleteFile.exists()) {
						deleteFile.delete();
					}
				}
			}
		}
	}

	// 判断是否带有ts格式的
	public static boolean forbidFormat(String threeLetter) {
		List<String> fileFormat = new ArrayList<String>();
		fileFormat.add("ts");
		fileFormat.add("mp4");
		if (fileFormat.contains(threeLetter)) {
			return true;
		} else {
			return false;
		}

	}
	/**
	 * 定时器
	 */
	public static void timer4(){
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY, 8); // 控制时
		calendar.set(Calendar.MINUTE, 0); // 控制分
		calendar.set(Calendar.SECOND, 0); // 控制秒
		Date time = calendar.getTime(); // 得出执行任务的时间,此处为今天的12:00:00
		Timer timer = new Timer();
		timer.scheduleAtFixedRate(new TimerTask() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
					System.out.println("执行了!!");
					delPahtFile();
			}
		}, time, 1000*60*60*24);

	}
}