java 在文件夹下按文件创建时间(或者修改时间)删除文件,并将删除的文件名输出。

文件的创建时间通过该文件的属性获取,注释部分为获取文件的最后修改时间(通过lastModified()获取)。

代码为删除创建范围内的文件:

package eg2;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/******************
 * 文件的删除
 *******************/
public class Test2_2 {

	static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	static Date CreateTimeDate;

	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub

		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入指定文件夹:");
		String dirs = sc.next();
		int[] a = new int[6];
		int[] b = new int[6];
		System.out.println("请输入起始时间t1:");
		for (int i = 0; i < 6; i++)
			a[i] = sc.nextInt();
		System.out.println("请输入最终时间t2:");
		for (int i = 0; i < 6; i++)
			b[i] = sc.nextInt();
		String t1 = "", t2 = "";
		t1 = t1 + a[0] + "-" + a[1] + "-" + a[2] + " " + a[3] + ":" + a[4] + ":" + a[5];
		t2 = t2 + b[0] + "-" + b[1] + "-" + b[2] + " " + b[3] + ":" + b[4] + ":" + b[5];
		System.out.println(t1);
		System.out.println(t2);
		Date date1 = df.parse(t1);
		Date date2 = df.parse(t2);
		System.out.println("要删除的文件名为:");
		delete(dirs, date1, date2);
		System.out.println("操作结束!");
	}

	private static void delete(String dirs, Date date1, Date date2) throws ParseException {
		// TODO Auto-generated method stub

		File dir = new File(dirs);
		File[] list = dir.listFiles();
		for (File file : list) {
			if (file.isDirectory()) {
				if (file.list().length > 0) {
					delete(file.getAbsolutePath(), date1, date2);
				}
			} else {
				Path p = Paths.get(file.getPath());
				BasicFileAttributeView basicview = Files.getFileAttributeView(p, BasicFileAttributeView.class,
						LinkOption.NOFOLLOW_LINKS);//通过文件的属性来获取文件的创建时间
				BasicFileAttributes attr;
				try {
					attr = basicview.readAttributes();
					CreateTimeDate = new Date(attr.creationTime().toMillis());
					// DateFormat usdf = new SimpleDateFormat("EEE MMM dd
					// HH:mm:ss zzz yyyy", Locale.US);
					// Date date = usdf.parse(CreateTimeDate.toString());
					// String fileTime = df.format(date);
					// Date fileTimes = df.parse(fileTime);
					// if (date1.getTime() <= file.lastModified() &&
					// file.lastModified() <= date2.getTime()) {
					// }//这部分为文件的最后修改时间
					if (date1.getTime() <= CreateTimeDate.getTime() && CreateTimeDate.getTime() <= date2.getTime()) {
						System.out.println(file.getName());
						file.delete();
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

 

你可能感兴趣的:(Java,java,文件操作)