75 lines
1.6 KiB
C#
75 lines
1.6 KiB
C#
|
// ****************************************************************
|
||
|
// Copyright 2007, Charlie Poole
|
||
|
// This is free software licensed under the NUnit license. You may
|
||
|
// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
|
||
|
// ****************************************************************
|
||
|
|
||
|
using System;
|
||
|
|
||
|
namespace NUnit.Util
|
||
|
{
|
||
|
public class RecentFileEntry
|
||
|
{
|
||
|
public static readonly char Separator = ',';
|
||
|
|
||
|
private string path;
|
||
|
|
||
|
private Version clrVersion;
|
||
|
|
||
|
public RecentFileEntry( string path )
|
||
|
{
|
||
|
this.path = path;
|
||
|
this.clrVersion = Environment.Version;
|
||
|
}
|
||
|
|
||
|
public RecentFileEntry( string path, Version clrVersion )
|
||
|
{
|
||
|
this.path = path;
|
||
|
this.clrVersion = clrVersion;
|
||
|
}
|
||
|
|
||
|
public string Path
|
||
|
{
|
||
|
get { return path; }
|
||
|
}
|
||
|
|
||
|
public Version CLRVersion
|
||
|
{
|
||
|
get { return clrVersion; }
|
||
|
}
|
||
|
|
||
|
public bool Exists
|
||
|
{
|
||
|
get { return path != null && System.IO.File.Exists( path ); }
|
||
|
}
|
||
|
|
||
|
public bool IsCompatibleCLRVersion
|
||
|
{
|
||
|
get { return clrVersion.Major <= Environment.Version.Major; }
|
||
|
}
|
||
|
|
||
|
public override string ToString()
|
||
|
{
|
||
|
return Path + Separator + CLRVersion.ToString();
|
||
|
}
|
||
|
|
||
|
public static RecentFileEntry Parse( string text )
|
||
|
{
|
||
|
int sepIndex = text.LastIndexOf( Separator );
|
||
|
|
||
|
if ( sepIndex > 0 )
|
||
|
try
|
||
|
{
|
||
|
return new RecentFileEntry( text.Substring( 0, sepIndex ),
|
||
|
new Version( text.Substring( sepIndex + 1 ) ) );
|
||
|
}
|
||
|
catch
|
||
|
{
|
||
|
//The last part was not a version, so fall through and return the whole text
|
||
|
}
|
||
|
|
||
|
return new RecentFileEntry( text );
|
||
|
}
|
||
|
}
|
||
|
}
|