java实现变更文件查询的方法
本文实例讲述了java实现变更文件查询的方法。分享给大家供大家参考。具体如下:
自己经常发布包时需要查找那些文件时上次发包后更新的数据文件,所以写了这个发布包,
拷贝输出的命令,dos窗口下执行,
为啥不直接复制文件,因为java拷贝文件会修改文件最后修改日期,所以采用dos下的拷贝。
/* * *更改所生成文件模板为 *窗口>首选项>Java>代码生成>代码和注释 */ packagecom.cn.wangk.tools; importjava.awt.BorderLayout; importjava.awt.Color; importjava.awt.Component; importjava.awt.Container; importjava.awt.FlowLayout; importjava.awt.GridLayout; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.util.Calendar; importjava.util.GregorianCalendar; importjavax.swing.BorderFactory; importjavax.swing.JButton; importjavax.swing.JComboBox; importjavax.swing.JFrame; importjavax.swing.JPanel; /***//** *BeantodisplayamonthcalendarinaJPanel.OnlyworksfortheWestern *calendar. * *@authorIanF.Darwin,http://www.darwinsys.com/ *@version$Id:Cal.java,v1.52004/02/0903:33:45ianExp$ */ publicclassCalextendsJPanel{ /***//**Thecurrently-interestingyear(notmodulo1900!)*/ protectedintyy; /***//**Currently-interestingmonthandday*/ protectedintmm,dd; /***//**Thebuttonstobedisplayed*/ protectedJButtonlabs[][]; /***//**Thenumberofdaysquarestoleaveblankatthestartofthismonth*/ protectedintleadGap=0; /***//**ACalendarobjectusedthroughout*/ Calendarcalendar=newGregorianCalendar(); /***//**Today'syear*/ protectedfinalintthisYear=calendar.get(Calendar.YEAR); /***//**Today'smonth*/ protectedfinalintthisMonth=calendar.get(Calendar.MONTH); /***//**Oneofthebuttons.WejustkeepitsreferenceforgetBackground().*/ privateJButtonb0; /***//**Themonthchoice*/ privateJComboBoxmonthChoice; /***//**Theyearchoice*/ privateJComboBoxyearChoice; /***//** *ConstructaCal,startingwithtoday. */ Cal(){ super(); setYYMMDD(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); buildGUI(); recompute(); } /***//** *ConstructaCal,giventheleadingdaysandthetotaldays * *@exceptionIllegalArgumentException *Ifyearoutofrange */ Cal(intyear,intmonth,inttoday){ super(); setYYMMDD(year,month,today); buildGUI(); recompute(); } privatevoidsetYYMMDD(intyear,intmonth,inttoday){ yy=year; mm=month; dd=today; } String[]months={"January","February","March","April","May","June", "July","August","September","October","November","December"}; /***//**BuildtheGUI.AssumesthatsetYYMMDDhasbeencalled.*/ privatevoidbuildGUI(){ getAccessibleContext().setAccessibleDescription( "Calendarnotaccessibleyet.Sorry!"); setBorder(BorderFactory.createEtchedBorder()); setLayout(newBorderLayout()); JPaneltp=newJPanel(); tp.add(monthChoice=newJComboBox()); for(inti=0;i<months.length;i++) monthChoice.addItem(months[i]); monthChoice.setSelectedItem(months[mm]); monthChoice.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventae){ inti=monthChoice.getSelectedIndex(); if(i>=0){ mm=i; //System.out.println("Month="+mm); recompute(); } } }); monthChoice.getAccessibleContext().setAccessibleName("Months"); monthChoice.getAccessibleContext().setAccessibleDescription( "Chooseamonthoftheyear"); tp.add(yearChoice=newJComboBox()); yearChoice.setEditable(true); for(inti=yy-5;i<yy+5;i++) yearChoice.addItem(Integer.toString(i)); yearChoice.setSelectedItem(Integer.toString(yy)); yearChoice.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventae){ inti=yearChoice.getSelectedIndex(); if(i>=0){ yy=Integer.parseInt(yearChoice.getSelectedItem() .toString()); //System.out.println("Year="+yy); recompute(); } } }); add(BorderLayout.CENTER,tp); JPanelbp=newJPanel(); bp.setLayout(newGridLayout(7,7)); labs=newJButton[6][7];//firstrowisdays bp.add(b0=newJButton("S")); bp.add(newJButton("M")); bp.add(newJButton("T")); bp.add(newJButton("W")); bp.add(newJButton("R")); bp.add(newJButton("F")); bp.add(newJButton("S")); ActionListenerdateSetter=newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringnum=e.getActionCommand(); if(!num.equals("")){ //setthecurrentdayhighlighted setDayActive(Integer.parseInt(num)); //WhenthisbecomesaBean,youcan //firesomekindofDateChangedeventhere. //Also,buildasimilardaySetterforday-of-weekbtns. } } }; //Constructallthebuttons,andaddthem. for(inti=0;i<6;i++) for(intj=0;j<7;j++){ bp.add(labs[i][j]=newJButton("")); labs[i][j].addActionListener(dateSetter); } add(BorderLayout.SOUTH,bp); } publicfinalstaticintdom[]={31,28,31,30,/**//*janfebmarapr*/ 31,30,31,31,/**//*mayjunjulaug*/ 30,31,30,31/**//*sepoctnovdec*/ }; /***//**Computewhichdaystoputwhere,intheCalpanel*/ protectedvoidrecompute(){ //System.out.println("Cal::recompute:"+yy+":"+mm+":"+dd); if(mm<0||mm>11) thrownewIllegalArgumentException("Month"+mm +"bad,mustbe0-11"); clearDayActive(); calendar=newGregorianCalendar(yy,mm,dd); //Computehowmuchtoleavebeforethefirst. //getDay()returns0forSunday,whichisjustright. leadGap=newGregorianCalendar(yy,mm,1).get(Calendar.DAY_OF_WEEK)-1; //System.out.println("leadGap="+leadGap); intdaysInMonth=dom[mm]; if(isLeap(calendar.get(Calendar.YEAR))&&mm>1) ++daysInMonth; //Blankoutthelabelsbefore1stdayofmonth for(inti=0;i<leadGap;i++){ labs[0][i].setText(""); } //Fillinnumbersforthedayofmonth. for(inti=1;i<=daysInMonth;i++){ JButtonb=labs[(leadGap+i-1)/7][(leadGap+i-1)%7]; b.setText(Integer.toString(i)); } //7days/week*upto6rows for(inti=leadGap+1+daysInMonth;i<6*7;i++){ labs[(i)/7][(i)%7].setText(""); } //Shadecurrentday,onlyifcurrentmonth if(thisYear==yy&&mm==thisMonth) setDayActive(dd);//shadetheboxfortoday //Sayweneedtobedrawnonthescreen repaint(); } /***//** *isLeap()returnstrueifthegivenyearisaLeapYear. * *"ayearisaleapyearifitisdivisibleby4butnotby100,except *thatyearsdivisibleby400*are*leapyears."--Kernighan&Ritchie, *_TheCProgrammingLanguage_,p37. */ publicbooleanisLeap(intyear){ if(year%4==0&&year%100!=0||year%400==0) returntrue; returnfalse; } /***//**Settheyear,month,andday*/ publicvoidsetDate(intyy,intmm,intdd){ //System.out.println("Cal::setDate"); this.yy=yy; this.mm=mm;//startsat0,likeDate this.dd=dd; recompute(); } /***//**Unsetanypreviouslyhighlightedday*/ privatevoidclearDayActive(){ JButtonb; //Firstun-shadethepreviously-selectedsquare,ifany if(activeDay>0){ b=labs[(leadGap+activeDay-1)/7][(leadGap+activeDay-1)%7]; b.setBackground(b0.getBackground()); b.repaint(); activeDay=-1; } } privateintactiveDay=-1; /***//**Setjusttheday,onthecurrentmonth*/ publicvoidsetDayActive(intnewDay){ clearDayActive(); //Setthenewone if(newDay<=0) dd=newGregorianCalendar().get(Calendar.DAY_OF_MONTH); else dd=newDay; //Nowshadethecorrectsquare Componentsquare=labs[(leadGap+newDay-1)/7][(leadGap+newDay-1)%7]; square.setBackground(Color.red); square.repaint(); activeDay=newDay; } /***//**Fortesting,amainprogram*/ publicstaticvoidmain(String[]av){ JFramef=newJFrame("Cal"); Containerc=f.getContentPane(); c.setLayout(newFlowLayout()); //forthistestdriver,hardcode1995/02/10. c.add(newCal(1995,2-1,10)); //andbesideit,thecurrentmonth. c.add(newCal()); f.pack(); f.setVisible(true); } }
希望本文所述对大家的java程序设计有所帮助。