2012-08-17 32 views
-1

我有,我想刪除在另一個目錄中某些目錄中的文件和目錄,一個簡單的惡性構建文件:南特<script>任務似乎不工作

<?xml version="1.0" ?> 
    <project name="maintenance"> 
     <include buildfile="common.properties" /> 
    <target name="clean"> 
     <script language="C#">    
       <imports> 
       <import namespace="System.Diagnostics" /> 
       </imports> 
    <code> 
     <![CDATA[    

    public static void DeleteUnusedFilesAndFolders(Project project) { 

    var screensDirectory = new DirectoryInfo(@"${failed.screens.dir}"); 
    var testsResultsDirectory = new DirectoryInfo(@"${results.dir}"); 
    var _7daysAgoDate = DateTime.Now.AddDays(-7); 
    foreach (var file in screensDirectory.GetFiles()) 
    {     
     if (file.CreationTime.CompareTo(_7daysAgoDate) == -1) 
     { 
      project.Log(Level.Info, "Delete file: " + file.Name); 
      file.IsReadOnly = false; 
      file.Delete(); 
      } 
     } 

    foreach (var dir in testsResultsDirectory.GetDirectories()) 
     { 
      if (dir.CreationTime.CompareTo(_7daysAgoDate) == -1) 
      { 
        project.Log(Level.Info, "Delete directory: " + dir.Name); 
        try 
        { 
         dir.Delete(true); 
        } 
        catch (Exception exception) 
        { 
         Console.WriteLine("Caught exception: "+exception.Message); 
        } 

      } 
    }     
} 
     ]]> 
     </code> 
    </script> 
    </target>  
</project> 

當我運行這個惡性文件,它寫道:「構建成功「,但沒有任何反應。我錯過了什麼?

回答

0

我發現了一個簡單的解決方案 - 使用回聲:

<echo message="Calling function: ${Cleaning::DeleteUnusedFilesAndFolders()}"/> 

在這之前,你應該定義前綴:

<project name="maintenance" prefix="Cleaning">