小第初学JAVA,请教一个很简单的问题,如何每月定时在固定的目录下生成文件夹.小弟大概看了下,要用timer,但小弟对这个不熟悉,不知道各位能否给点提示,谢谢

解决方案 »

  1.   

    这个单单用jdk中的timer是做不到的,因为timer的重复周期是用毫秒计算的,而一个月有的时候 是30天,有的时候是31天,有的时候是28天,有的时候是29天。
    网上有一个quartz开源项目,能完成你的任务。http://www.opensymphony.com/quartz/这是它项目的主页,你可以上去看看,上面文档挺全的。
      

  2.   

    起一个定式器周期性(1分钟,1小时,N小时都行)查询当前系统时间 转换系统时间为当前日期,只要符合你的要求创建你的目录不就行了
    获取当前系统时间:long t = System.currentTimeMillis();
    转换日期: Date date = new Date(t);
      

  3.   

    最简单的方式是作个bat文件,java调用
      

  4.   

    谢谢楼上的imA(男的不会,会的不男) ,这个开源项目看的不太懂,您能否说明白点,谢谢.
    TOblh(股市奋斗几十年,一夜回到解放前: () 你说的起个定时器周期性的查询时间,当系统时间的当前时间的时候,就建立目录,谢谢,我去尝试下.
      

  5.   

    当然用quartz
    google搜一下,一堆
      

  6.   

    我还是不太明白,怎么一定要用quartz呢,难道timer就不行吗? 还请各位帮忙
      

  7.   

    用Timer当然也可以做public class TimerTest
    {
    /**
     * @param args
     */
    public static void main(String[] args)
    {
    long delay = 0l;// 延时多长时间执行第一次
    long period = 1000;// 执行周期1秒,如果是一天就是1000*60*60*24,如果是一个星期就是1000*60*60*24*7
    java.util.Timer timer = new java.util.Timer();
    timer.schedule(new MyTimerTask(), delay, period);
    }
    }class MyTimerTask extends java.util.TimerTask
    {
    public void run()
    {
    // 将当前日期转化为yyyy-MM-dd HH:mm:ss格式的字符串,或者你可以格式化成日期dd的格式,那样在后面的条件判断的时候就不用取子串了,如:
    // java.text.DateFormat df = new java.text.SimpleDateFormat("dd");
    // String s=df.format(new java.util.Date(System.currentTimeMillis()));
    // if(s.equals("01"))
    // System.out.println("生成文件夹操作");
    // else
    // System.out.println("我是弱智!!!");
    java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String sDate = df.format(new java.util.Date(System.currentTimeMillis()));
    System.out.println("当前日期: " + sDate);
    // 假设你的是每个月的一号执行生成文件夹
    if (sDate.substring(8, 10).equals("01"))
    {
    System.out.println("生成文件夹操作");
    } else
    System.out.println("我是弱智!!!");
    }
    }
      

  8.   

    根据你的要求,程序中的period应该设置为一天,这样就是每天判断今天的日期,如果是一号就生成文件夹
      

  9.   

    楼上的,linux/unix下有计划任务?
      

  10.   

    谢谢,imA(男的不会,会的不男) 
    你看我现在要生成的文件夹,是要按照下个月的日期,每天生成一个文件夹.
    那个日期应该怎么设置呢
    File file = new File("D:\dir1");
    file.mkdir();
    小弟不知道怎么在建立的文件名字那里加入日期.
      

  11.   

    String sDate = df.format(new java.util.Date(System.currentTimeMillis()));这里都已经把日期转化成字符串了,还有什么不会把这个字符串加入文件名的?就是字符串拼接呗
      

  12.   

    Linux下有比计划任务更强大的自动执行功能,应该足够满足楼主的需要
      

  13.   

    TO imA(男的不会,会的不男) 
    把这个字符串加入文件名,能不能说清楚点呢? 谢谢楼上的说的是crontab 吧
      

  14.   

    String sDate = df.format(new java.util.Date(System.currentTimeMillis()));File file = new File("D://dir1//"+sDate);你也太懒了吧???