ChinaUnix首页 > 精华文章 > 安全技术 > 正文

[原创] 一个轻量型完整性检测工具-Triproot


http://www.chinaunix.net 作者:t920  发表于:2008-12-02 03:16:30
发表评论】 【查看原文】 【安全技术讨论区】【关闭

前些天为了测试个东西,写的监控某个目录下文件变化的小程序,稍微修改下就成了类似tripwire的工具。
编译: javac triproot.java
运行:java triproot -init [Dir you want init] [Output file name]
         java triproot -check [Dir you want check] [Trip file,that must be init early]

在windows2k、window2003、AS5.1上测试过,linux下编译运行要改个字符,注释里有。



[table=95%][tr][td][font=FixedSys][color=#000000]   [color=#0000FF]import[/color] [color=#FF0000]java[/color][color=#0000CC].[/color][color=#FF0000]io[/color][color=#0000CC].[/color][color=#0000CC]*[/color][color=#0000CC];[/color]
   [color=#0000FF]import[/color] [color=#FF0000]java[/color][color=#0000CC].[/color][color=#FF0000]util[/color][color=#0000CC].[/color][color=#0000CC]*[/color][color=#0000CC];[/color]
   [color=#0000FF]import[/color] [color=#FF0000]java[/color][color=#0000CC].[/color][color=#FF0000]lang[/color][color=#0000CC].[/color][color=#0000CC]*[/color][color=#0000CC];[/color]
   [color=#0000FF]import[/color] [color=#FF0000]java[/color][color=#0000CC].[/color][color=#FF0000]text[/color][color=#0000CC].[/color][color=#0000CC]*[/color][color=#0000CC];[/color]

   [color=#0000FF]public[/color] [color=#0000FF]class[/color] triproot
   [color=#0000CC]{[/color]


  [color=#0000FF]static[/color]  [color=#FF0000]ArrayList[/color] dirlist [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#FF0000]ArrayList[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#0000FF]static[/color]  [color=#FF0000]HashSet[/color] [color=#FF0000]filewriter[/color][color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]HashSet[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#0000FF]static[/color] [color=#0000FF]long[/color] filenum[color=#0000CC]=[/color]0[color=#0000CC];[/color]
  [color=#0000FF]static[/color] [color=#0000FF]long[/color] dirnum[color=#0000CC]=[/color]0[color=#0000CC];[/color]

  

[color=#0000FF]public[/color]   [color=#FF0000]String[/color]   getDateString[color=#0000CC]([/color][color=#0000FF]long[/color] unixtime[color=#0000CC])[/color]    [color=#FF9900]//convert unix time to human time
[/color]
  [color=#0000CC]{[/color]  
 [color=#FF0000]Date[/color]   [color=#FF0000]date[/color]   [color=#0000CC]=[/color]   [color=#0000FF]new[/color]   [color=#FF0000]Date[/color][color=#0000CC]([/color]unixtime[color=#0000CC])[/color][color=#0000CC];[/color]   
 [color=#FF0000]SimpleDateFormat[/color] [color=#FF0000]formatter[/color] [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#FF0000]SimpleDateFormat[/color][color=#0000CC]([/color][color=#FF00FF]"yyyy-MM-dd HH:mm:ss"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
 [color=#FF0000]String[/color] dateString [color=#0000CC]=[/color] [color=#FF0000]formatter[/color][color=#0000CC].[/color][color=#FF0000]format[/color][color=#0000CC]([/color][color=#FF0000]date[/color][color=#0000CC])[/color][color=#0000CC];[/color]
 [color=#0000FF]return[/color] dateString[color=#0000CC];[/color]
  [color=#0000CC]}[/color]

   [color=#0000FF]void[/color] detectwhatisit[color=#0000CC]([/color][color=#FF0000]String[/color] receivefilename[color=#0000CC])[/color]  [color=#FF9900]//detect receivefilename is a dir or a file,push dir to dirlist,push file to filewriter;
[/color]
   [color=#0000CC]{[/color]
            [color=#FF0000]File[/color] dir2 [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#FF0000]File[/color][color=#0000CC]([/color]receivefilename[color=#0000CC])[/color][color=#0000CC];[/color]

            [color=#0000FF]boolean[/color] isDir [color=#0000CC]=[/color] dir2[color=#0000CC].[/color][color=#FF0000]isDirectory[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
            [color=#0000FF]if[/color] [color=#0000CC]([/color]isDir[color=#0000CC])[/color] 
            [color=#0000CC]{[/color]    
            triproot[color=#0000CC].[/color]dirnum[color=#0000CC]+[/color][color=#0000CC]+[/color][color=#0000CC];[/color]
            triproot[color=#0000CC].[/color]dirlist[color=#0000CC].[/color][color=#FF0000]add[/color][color=#0000CC]([/color]receivefilename[color=#0000CC])[/color][color=#0000CC];[/color]
            [color=#0000CC]}[/color]
            [color=#0000FF]else[/color] 
            [color=#0000CC]{[/color]
            triproot[color=#0000CC].[/color]filenum[color=#0000CC]+[/color][color=#0000CC]+[/color][color=#0000CC];[/color]
            [color=#FF0000]String[/color] [color=#FF0000]lastmodified[/color][color=#0000CC]=[/color]getDateString[color=#0000CC]([/color]dir2[color=#0000CC].[/color][color=#FF0000]lastModified[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color]
            triproot[color=#0000CC].[/color][color=#FF0000]filewriter[/color][color=#0000CC].[/color][color=#FF0000]add[/color][color=#0000CC]([/color][color=#FF00FF]"Size : "[/color][color=#0000CC]+[/color]dir2[color=#0000CC].[/color][color=#FF0000]length[/color][color=#0000CC]([/color][color=#0000CC])[/color] [color=#0000CC]+[/color][color=#FF00FF]"\t Last modify : "[/color][color=#0000CC]+[/color][color=#FF0000]lastmodified[/color] [color=#0000CC]+[/color] [color=#FF00FF]" \t File name :"[/color][color=#0000CC]+[/color]dir2[color=#0000CC].[/color][color=#FF0000]getPath[/color][color=#0000CC]([/color][color=#0000CC])[/color] [color=#0000CC])[/color][color=#0000CC];[/color]

            [color=#0000CC]}[/color][color=#FF9900]//else end
[/color]

    [color=#0000CC]}[/color][color=#FF9900]//end of detectwhatisit
[/color]





[color=#0000FF]boolean[/color] listfile[color=#0000CC]([/color][color=#FF0000]String[/color] getDir[color=#0000CC])[/color]          [color=#FF9900]//scan getDir
[/color]
[color=#0000CC]{[/color]
   [color=#FF0000]File[/color] dir [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#FF0000]File[/color][color=#0000CC]([/color]getDir[color=#0000CC])[/color][color=#0000CC];[/color]
   [color=#FF0000]String[/color][color=#0000CC][[/color][color=#0000CC]][/color] [color=#FF0000]children[/color] [color=#0000CC]=[/color] dir[color=#0000CC].[/color][color=#FF0000]list[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
   [color=#0000FF]boolean[/color] list_if[color=#0000CC]=[/color]false[color=#0000CC];[/color]


    [color=#0000FF]if[/color] [color=#0000CC]([/color][color=#FF0000]children[/color] [color=#0000CC]=[/color][color=#0000CC]=[/color] [color=#0000FF]null[/color][color=#0000CC])[/color] 
    [color=#0000CC]{[/color]
        [color=#FF9900]// Either dir does not exist or is not a directory
[/color]
        [color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Directory is null"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
    [color=#0000CC]}[/color] 
    [color=#0000FF]else[/color] 
    [color=#0000CC]{[/color]
        [color=#0000FF]for[/color] [color=#0000CC]([/color][color=#0000FF]int[/color] i[color=#0000CC]=[/color]0[color=#0000CC];[/color] i[color=#0000CC]<[/color][color=#FF0000]children[/color][color=#0000CC].[/color][color=#FF0000]length[/color][color=#0000CC];[/color] i[color=#0000CC]+[/color][color=#0000CC]+[/color][color=#0000CC])[/color] 
        [color=#0000CC]{[/color]
            [color=#FF9900]// Get filename of file or directory
[/color]
            [color=#FF0000]String[/color] filename [color=#0000CC]=[/color] [color=#FF0000]children[/color][color=#0000CC][[/color]i[color=#0000CC]][/color][color=#0000CC];[/color]
            detectwhatisit[color=#0000CC]([/color]getDir[color=#0000CC]+[/color][color=#FF00FF]"\\"[/color][color=#0000CC]+[/color]filename[color=#0000CC])[/color][color=#0000CC];[/color]   [color=#FF9900]//if os is linux,replace "\\" to "/"
[/color]

            [color=#0000FF]if[/color][color=#0000CC]([/color][color=#0000CC]([/color]i[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]=[/color][color=#0000CC]=[/color][color=#FF0000]children[/color][color=#0000CC].[/color][color=#FF0000]length[/color][color=#0000CC])[/color]
            [color=#0000CC]{[/color]
                list_if[color=#0000CC]=[/color]true[color=#0000CC];[/color]
                [color=#0000CC]}[/color]
            [color=#0000FF]else[/color][color=#0000CC]{[/color]list_if[color=#0000CC]=[/color]false[color=#0000CC];[/color][color=#0000CC]}[/color]                 [color=#FF9900]//if scan getDir is done,set list_if=true
[/color]

        [color=#0000CC]}[/color][color=#FF9900]//for end
[/color]
    [color=#0000CC]}[/color][color=#FF9900]//else end
[/color]
    [color=#0000FF]return[/color] list_if[color=#0000CC];[/color]
[color=#0000CC]}[/color][color=#FF9900]//end of listfile
[/color]


[color=#0000FF]void[/color] init_dir[color=#0000CC]([/color][color=#FF0000]String[/color] original[color=#0000CC],[/color][color=#FF0000]String[/color] outDir[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]ArrayList[/color] templist[color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]ArrayList[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000FF]if[/color][color=#0000CC]([/color][color=#0000FF]new[/color] triproot[color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC].[/color]listfile[color=#0000CC]([/color]original[color=#0000CC])[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#0000FF]while[/color][color=#0000CC]([/color]dirlist[color=#0000CC].[/color][color=#FF0000]size[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC]![/color][color=#0000CC]=[/color]0[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#0000FF]for[/color][color=#0000CC]([/color][color=#0000FF]int[/color] j[color=#0000CC]=[/color]0[color=#0000CC];[/color]j[color=#0000CC]<[/color]dirlist[color=#0000CC].[/color][color=#FF0000]size[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]j[color=#0000CC]+[/color][color=#0000CC]+[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
templist[color=#0000CC].[/color][color=#FF0000]add[/color][color=#0000CC]([/color]dirlist[color=#0000CC].[/color][color=#FF0000]get[/color][color=#0000CC]([/color]j[color=#0000CC])[/color][color=#0000CC].[/color][color=#FF0000]toString[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color]
            [color=#0000FF]if[/color][color=#0000CC]([/color][color=#0000CC]([/color]j[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]=[/color][color=#0000CC]=[/color]dirlist[color=#0000CC].[/color][color=#FF0000]size[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color]
            dirlist[color=#0000CC].[/color][color=#FF0000]clear[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]                   [color=#FF9900]//copy dirlist to templist,and clear dirlist
[/color]
[color=#0000CC]}[/color]

[color=#0000FF]for[/color][color=#0000CC]([/color][color=#0000FF]int[/color] k[color=#0000CC]=[/color]0[color=#0000CC];[/color]k[color=#0000CC]<[/color]templist[color=#0000CC].[/color][color=#FF0000]size[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]k[color=#0000CC]+[/color][color=#0000CC]+[/color][color=#0000CC])[/color]                      [color=#FF9900]//scan the second round dir
[/color]
[color=#0000CC]{[/color]
[color=#0000FF]new[/color] triproot[color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC].[/color]listfile[color=#0000CC]([/color]templist[color=#0000CC].[/color][color=#FF0000]get[/color][color=#0000CC]([/color]k[color=#0000CC])[/color][color=#0000CC].[/color][color=#FF0000]toString[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color]
        [color=#0000FF]if[/color][color=#0000CC]([/color][color=#0000CC]([/color]k[color=#0000CC]+[/color]1[color=#0000CC])[/color][color=#0000CC]=[/color][color=#0000CC]=[/color]templist[color=#0000CC].[/color][color=#FF0000]size[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC]{[/color]
             templist[color=#0000CC].[/color][color=#FF0000]clear[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color] [color=#0000CC]}[/color]
            [color=#0000FF]else[/color][color=#0000CC]{[/color][color=#0000CC]}[/color] 
[color=#0000CC]}[/color]

[color=#0000FF]if[/color][color=#0000CC]([/color]dirlist[color=#0000CC].[/color][color=#FF0000]size[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC]=[/color][color=#0000CC]=[/color]0[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#0000FF]try[/color]
[color=#0000CC]{[/color]
  [color=#FF0000]PrintWriter[/color] out2 [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#FF0000]PrintWriter[/color][color=#0000CC]([/color][color=#0000FF]new[/color] [color=#FF0000]FileWriter[/color][color=#0000CC]([/color]outDir[color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#FF0000]Iterator[/color] ir[color=#0000CC]=[/color][color=#FF0000]filewriter[/color][color=#0000CC].[/color][color=#FF0000]iterator[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#0000FF]while[/color][color=#0000CC]([/color]ir[color=#0000CC].[/color][color=#FF0000]hasNext[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color]
  [color=#0000CC]{[/color]
   out2[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color]ir[color=#0000CC].[/color][color=#FF0000]next[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#0000CC]}[/color]

[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Total dirs is: "[/color][color=#0000CC]+[/color]triproot[color=#0000CC].[/color]dirnum[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Total files is: "[/color][color=#0000CC]+[/color]triproot[color=#0000CC].[/color]filenum[color=#0000CC])[/color][color=#0000CC];[/color]
out2[color=#0000CC].[/color][color=#FF0000]close[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]
[color=#0000FF]catch[/color][color=#0000CC]([/color][color=#FF0000]Exception[/color] e[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color]e[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]
[color=#0000CC]}[/color]
  [color=#0000CC]}[/color][color=#FF9900]//end of while
[/color]
  [color=#0000CC]}[/color]
[color=#0000CC]}[/color][color=#FF9900]//end of  function init_dir
[/color]



[color=#0000FF]void[/color] check_dir[color=#0000CC]([/color][color=#FF0000]String[/color] newList[color=#0000CC],[/color][color=#FF0000]String[/color] oldList[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#0000FF]try[/color]
[color=#0000CC]{[/color]
[color=#FF0000]BufferedReader[/color] new_List [color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]BufferedReader[/color][color=#0000CC]([/color][color=#0000FF]new[/color] [color=#FF0000]FileReader[/color][color=#0000CC]([/color]newList[color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color] 
[color=#FF0000]BufferedReader[/color] old_List [color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]BufferedReader[/color][color=#0000CC]([/color][color=#0000FF]new[/color] [color=#FF0000]FileReader[/color][color=#0000CC]([/color]oldList[color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC];[/color] 
[color=#FF0000]HashSet[/color] new_hash[color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]HashSet[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]HashSet[/color] old_hash[color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]HashSet[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]String[/color] s[color=#0000CC]=[/color][color=#0000FF]new[/color] [color=#FF0000]String[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
    
    [color=#0000FF]while[/color][color=#0000CC]([/color][color=#0000CC]([/color]s [color=#0000CC]=[/color] new_List[color=#0000CC].[/color][color=#FF0000]readLine[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC]![/color][color=#0000CC]=[/color] [color=#0000FF]null[/color][color=#0000CC])[/color]
            [color=#0000CC]{[/color]
                new_hash[color=#0000CC].[/color][color=#FF0000]add[/color][color=#0000CC]([/color]s[color=#0000CC])[/color][color=#0000CC];[/color]   
            [color=#0000CC]}[/color]
    
            
            new_List[color=#0000CC].[/color][color=#FF0000]close[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
    [color=#0000FF]while[/color][color=#0000CC]([/color][color=#0000CC]([/color]s [color=#0000CC]=[/color] old_List[color=#0000CC].[/color][color=#FF0000]readLine[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color][color=#0000CC]![/color][color=#0000CC]=[/color] [color=#0000FF]null[/color][color=#0000CC])[/color]
            [color=#0000CC]{[/color]
                old_hash[color=#0000CC].[/color][color=#FF0000]add[/color][color=#0000CC]([/color]s[color=#0000CC])[/color][color=#0000CC];[/color]   
            [color=#0000CC]}[/color]
        
            old_List[color=#0000CC].[/color][color=#FF0000]close[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]

  [color=#FF0000]File[/color] delete_temp [color=#0000CC]=[/color] [color=#0000FF]new[/color] [color=#FF0000]File[/color][color=#0000CC]([/color]newList[color=#0000CC])[/color][color=#0000CC];[/color]
  delete_temp[color=#0000CC].[/color][color=#FF0000]delete[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]


  [color=#FF0000]Iterator[/color] irq[color=#0000CC]=[/color]new_hash[color=#0000CC].[/color][color=#FF0000]iterator[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#0000FF]int[/color] countChange[color=#0000CC]=[/color]0[color=#0000CC];[/color]
  [color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"-----------Start Check-----------------------------------------------------"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#0000FF]while[/color][color=#0000CC]([/color]irq[color=#0000CC].[/color][color=#FF0000]hasNext[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC])[/color]
  [color=#0000CC]{[/color]
   s [color=#0000CC]=[/color][color=#0000CC]([/color][color=#FF0000]String[/color][color=#0000CC])[/color]irq[color=#0000CC].[/color][color=#FF0000]next[/color][color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC];[/color]
   [color=#0000FF]if[/color][color=#0000CC]([/color]old_hash[color=#0000CC].[/color][color=#FF0000]contains[/color][color=#0000CC]([/color]s[color=#0000CC])[/color][color=#0000CC])[/color]
   [color=#0000CC]{[/color]
   
   [color=#0000CC]}[/color]
   [color=#0000FF]else[/color]
   [color=#0000CC]{[/color]
   [color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color]s[color=#0000CC])[/color][color=#0000CC];[/color]
   countChange[color=#0000CC]+[/color][color=#0000CC]+[/color][color=#0000CC];[/color]
   [color=#0000CC]}[/color]
  [color=#0000CC]}[/color]
  [color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"-----------Check Done!-----------------------------------------------------"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
  [color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Total "[/color][color=#0000CC]+[/color]countChange[color=#0000CC]+[/color] [color=#FF00FF]" Files have been Modified!!!"[/color][color=#0000CC])[/color][color=#0000CC];[/color]

[color=#0000CC]}[/color]

[color=#0000FF]catch[/color][color=#0000CC]([/color][color=#FF0000]Exception[/color] e[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color]e[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]
[color=#0000CC]}[/color][color=#FF9900]//end of function check_dir
[/color]


[color=#0000FF]public[/color] [color=#0000FF]static[/color] [color=#0000FF]void[/color] main[color=#0000CC]([/color][color=#FF0000]String[/color] args[color=#0000CC][[/color][color=#0000CC]][/color][color=#0000CC])[/color]   
[color=#0000CC]{[/color]
[color=#0000FF]try[/color][color=#0000CC]{[/color]
[color=#0000FF]if[/color][color=#0000CC]([/color]args[color=#0000CC].[/color]length!=3[color=#0000CC])[/color]
[color=#0000CC]{[/color]

[color=#0000FF]if[/color][color=#0000CC]([/color]args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC].[/color][color=#FF0000]equals[/color][color=#0000CC]([/color][color=#FF00FF]"-help"[/color][color=#0000CC])[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"User Guide :"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"java triproot -init [Dir you want init] [Output file name]"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"java triproot -check [Dir you want check] [Trip file,that must be init early]"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"IF Dir include space,don't forget \"\" !"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color][color=#FF0000]exit[/color][color=#0000CC]([/color]1[color=#0000CC])[/color][color=#0000CC];[/color]

[color=#0000CC]}[/color]

[color=#0000FF]if[/color][color=#0000CC]([/color]args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC].[/color][color=#FF0000]equals[/color][color=#0000CC]([/color][color=#FF00FF]"-check"[/color][color=#0000CC])[/color][color=#0000CC]|[/color][color=#0000CC]|[/color]args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC].[/color][color=#FF0000]equals[/color][color=#0000CC]([/color][color=#FF00FF]"-init"[/color][color=#0000CC])[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Incompleted :"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Please type \"java triproot -help\" for more infomation!"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color][color=#FF0000]exit[/color][color=#0000CC]([/color]1[color=#0000CC])[/color][color=#0000CC];[/color]

[color=#0000CC]}[/color]


[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Unkonw command "[/color][color=#0000CC]+[/color] args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Please type \"java triproot -help\" for more infomation!"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color][color=#FF0000]exit[/color][color=#0000CC]([/color]1[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]
[color=#0000CC]}[/color]
[color=#0000FF]catch[/color][color=#0000CC]([/color][color=#FF0000]Exception[/color] e[color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color]e[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"catched input error"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]




[color=#0000FF]if[/color][color=#0000CC]([/color]args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC].[/color][color=#FF0000]equals[/color][color=#0000CC]([/color][color=#FF00FF]"-init"[/color][color=#0000CC])[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#0000FF]new[/color] triproot[color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC].[/color]init_dir[color=#0000CC]([/color]args[color=#0000CC][[/color]1[color=#0000CC]][/color][color=#0000CC],[/color]args[color=#0000CC][[/color]2[color=#0000CC]][/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color][color=#FF0000]exit[/color][color=#0000CC]([/color]0[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]



[color=#0000FF]if[/color][color=#0000CC]([/color]args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC].[/color][color=#FF0000]equals[/color][color=#0000CC]([/color][color=#FF00FF]"-check"[/color][color=#0000CC])[/color][color=#0000CC])[/color]
[color=#0000CC]{[/color]
[color=#FF0000]String[/color] temp_out[color=#0000CC]=[/color][color=#FF00FF]"temp.out"[/color][color=#0000CC];[/color]
[color=#0000FF]new[/color] triproot[color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC].[/color]init_dir[color=#0000CC]([/color]args[color=#0000CC][[/color]1[color=#0000CC]][/color][color=#0000CC],[/color]temp_out[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000FF]new[/color] triproot[color=#0000CC]([/color][color=#0000CC])[/color][color=#0000CC].[/color]check_dir[color=#0000CC]([/color]temp_out[color=#0000CC],[/color]args[color=#0000CC][[/color]2[color=#0000CC]][/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color][color=#FF0000]exit[/color][color=#0000CC]([/color]0[color=#0000CC])[/color][color=#0000CC];[/color]
[color=#0000CC]}[/color]

[color=#0000FF]else[/color]
[color=#0000CC]{[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Unkonw command "[/color][color=#0000CC]+[/color] args[color=#0000CC][[/color]0[color=#0000CC]][/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color]out[color=#0000CC].[/color][color=#FF0000]println[/color][color=#0000CC]([/color][color=#FF00FF]"Please type \"java triproot -help\" for more infomation!"[/color][color=#0000CC])[/color][color=#0000CC];[/color]
[color=#FF0000]System[/color][color=#0000CC].[/color][color=#FF0000]exit[/color][color=#0000CC]([/color]1[color=#0000CC])[/color][color=#0000CC];[/color]

[color=#0000CC]}[/color]

[color=#0000CC]}[/color][color=#FF9900]//end of main
[/color]
    [color=#0000CC]}[/color][color=#FF9900]//end of class
[/color]
[/color][/font][/td][/tr][/table]

[ 本帖最后由 t920 于 2008-5-30 12:40 编辑 ]



 ylcqen 回复于:2008-06-03 09:14:24

嗯,写得不错!


 sunki 回复于:2008-06-04 13:10:53

C:\Program Files\Java\jdk1.5.0_12\bin>javac triproot.java
注意:triproot.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

平台:xp-sp3

编译不成功:(


 烟花如绣 回复于:2008-06-05 15:37:42

:P :P ddddddddddddddddd


 friendshao 回复于:2008-06-19 18:06:54

有点问题


 yuanyuan025 回复于:2008-06-23 01:18:21

支持了 强


 flb_2001 回复于:2008-08-22 12:08:03

怎么使用的啊?


 beyondfly 回复于:2008-12-02 03:16:30

嗯,写得不错!




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=1118276
转载请注明作者名及原文出处