gpt4 book ai didi

Nant - 获取最新文件夹

转载 作者:行者123 更新时间:2023-12-03 19:29:04 25 4
gpt4 key购买 nike

在nant中有没有比较简单的方法,不用写自定义任务,获取某个目录下最新文件夹的名字?不需要递归。我一直在尝试使用 directory::get-creation-time 和 foreach 循环和 if 语句来完成它,yada yada。太复杂了,我准备创建一个自定义任务。但是,我怀疑有一些更简单的方法可以通过现有的 nant 功能来实现。

最佳答案

我相信您在 中声明这样做是正确的纯 nant 时尚可能会显得很凌乱,尤其是属性在 nant 中的工作方式。如果您不想编写自定义任务,可以随时使用 script task .例如:

<?xml version="1.0"?>
<project name="testing" basedir=".">

<script language="C#" prefix="test" >
<code>
<![CDATA[
[Function("find-newest-dir")]
public static string FindNewestDir( string startDir ) {
string theNewestDir = string.Empty;
DateTime theCreateTime = new DateTime();
DateTime theLastCreateTime = new DateTime();
string[] theDirs = Directory.GetDirectories( startDir );
for ( int theCurrentIdx = 0; theCurrentIdx < theDirs.Length; ++theCurrentIdx )
{
if ( theCurrentIdx != 0 )
{
DateTime theCurrentDirCreateTime = Directory.GetCreationTime( theDirs[ theCurrentIdx ] );
if ( theCurrentDirCreateTime >= theCreateTime )
{
theNewestDir = theDirs[ theCurrentIdx ];
theCreateTime = theCurrentDirCreateTime;
}
}
else
{
theNewestDir = theDirs[ theCurrentIdx ];
theCreateTime = Directory.GetCreationTime( theDirs[ theCurrentIdx ] );
}
}
return theNewestDir;
}
]]>
</code>
</script>

<property name="dir" value="" overwrite="false"/>
<echo message="The newest directory is: ${test::find-newest-dir( dir )}"/>

</project>

有了这个,人们应该能够调用该函数来获取最新的目录。实际功能的实现可以改变为任何东西(优化一点或其他),但我已经包含了一个快速的,以供引用如何使用 脚本任务 .它产生如下输出:

nant -D:dir=c:\

NAnt 0.85(内部版本 0.85.2478.0;发布;2006 年 10 月 14 日)
版权所有 (C) 2001-2006 Gerry Shaw
http://nant.sourceforge.net

构建文件:file:///C:/tmp/NAnt.build
目标框架:Microsoft .NET Framework 2.0

[脚本] 扫描程序集“jdrgmbuy”以获取扩展。
[echo] 最新目录为:C:\tmp

构建成功

总时间:0.3 秒。

关于Nant - 获取最新文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com