我想先有一段开始时间“2009-03-21 08:21:00”,还有一段结束时间“2009-03-21 08:31:00”  得到这个时间之后
我想复制这个时间段的文件从一个目录到另一个目录下
文件名是以时间命名的,如“20090321082100.txt”,“20090321082200.txt”,“20090321082300.txt”

解决方案 »

  1.   


    File file = new File("D:\\文件夹");
    File[] firstF = file.listFiles();
    for (int i = 0; i < subF.length; i++) {
                    String fileName = subF[i].getName();
    判断名字是不是在那个时间段里
    }
      

  2.   

    看看这个:import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Calendar;
    import java.util.Date;public class FindReplace {
    @SuppressWarnings("deprecation")
    public static void main(String[] args) {
    File file = new File("D:\\");// 现在只能复制文件,而不能复制文件夹。
    File[] firstF = file.listFiles();
    for (int i = 0; i < firstF.length; i++) {
    String fileName = firstF[i].getName(); System.out.println(fileName);
    Long time = file.lastModified();
    Calendar cd = Calendar.getInstance();
    cd.setTimeInMillis(time);
    Date d = cd.getTime(); if (d.before(new Date(2009, 3, 21, 8, 21, 0))
    && d.before(new Date(2009, 3, 21, 8, 31, 0))
    && firstF[i].isFile()) {
    InputStream is = null;
    OutputStream os = null;
    try {
    is = new FileInputStream(firstF[i].getAbsolutePath());
    os = new FileOutputStream("e:\\" + i + ".txt");// 文件名自己搞定 int c;
    while ((c = is.read()) != -1) { // 当is对象中有可读的字符时, os.write(c); // 写入os对象中
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    os.close();
    is.close();
    } catch (IOException e) {
    e.printStackTrace();
    } }
    } } }}
      

  3.   

    实现 FileFilter 接口,通过 File 的 listFiles(FileFilter filter) 来获得过滤后的文件数组。