[英]How to use the Version Class in a LINQ query on latest release folder
我们正在进行软件构建,并将其以四位数的Major.Minor.Build.rev(0.0.0.0)格式存储在预发布文件夹中的文件夹中。
这是我目前拥有的代码:
static void Main(string[] args)
{
string latest = GetLatestBuildVersion(@"\\path\to\network\folder");
latest = "";
}
static string GetLatestBuildVersion(string sPath)
{
Version latestVersion = new Version();
string[] dirs = Directory.GetDirectories(sPath);
foreach (string dir in dirs)
{
string subfolderNameOnly = Path.GetFileName(dir);
try
{
Version subfolderVersion = new Version(subfolderNameOnly);
if (latestVersion.CompareTo(subfolderVersion) < 0)
{
latestVersion = subfolderVersion;
}
}
catch (Exception ex)
{
// Just continue
}
}
return latestVersion.ToString();
}
对于链接的LINQ方法,这是一项完美的任务:
static string GetLatestBuildVersion(string sPath)
{
return Directory.GetDirectories(sPath)
.Select(v => new Version(Path.GetFileName(v)))
.OrderBy(v => v)
.Last();
}
根据需要添加错误处理(考虑到特定的上下文,我宁愿让它崩溃,而不是让它在不是我期望的文件/文件所在的文件上运行)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.