* Added new compatibility functions to Util

* IsEnvironmentSupported() - returns whether the platform is supported, if not, an error message is specified (at the moment restricts 95/98/ME, Systems that lack HTTPD.SYS and versions of the .NET framework prior to 2.0)
* GetFileName() - returns a system valid filename, on windows this places data in the Application Data directory, on UNIX, the folder in which the application is calling from.
afrisby
Adam Frisby 2007-07-29 07:14:04 +00:00
parent c33b29a105
commit 43507f857b
1 changed files with 55 additions and 0 deletions

View File

@ -63,6 +63,61 @@ namespace OpenSim.Framework.Utilities
return id; return id;
} }
public static string GetFileName(string file)
{
// Return just the filename on UNIX platforms
// TODO: this should be customisable with a prefix, but that's something to do later.
if (System.Environment.OSVersion.Platform == PlatformID.Unix)
{
return file;
}
// Return %APPDATA%/OpenSim/file for 2K/XP/NT/2K3/VISTA
// TODO: Switch this to System.Enviroment.SpecialFolders.ApplicationData
if (System.Environment.OSVersion.Platform == PlatformID.Win32NT)
{
if (!System.IO.Directory.Exists("%APPDATA%\\OpenSim\\"))
{
System.IO.Directory.CreateDirectory("%APPDATA%\\OpenSim");
}
return "%APPDATA%\\OpenSim\\" + file;
}
// Catch all - covers older windows versions
// (but those probably wont work anyway)
return file;
}
public static bool IsEnvironmentSupported(ref string reason)
{
// Must have .NET 2.0 (Generics / libsl)
if (System.Environment.Version.Major < 2)
{
reason = ".NET 1.0/1.1 lacks components that is used by OpenSim";
return false;
}
// Windows 95/98/ME are unsupported
if (System.Environment.OSVersion.Platform == PlatformID.Win32Windows &&
System.Environment.OSVersion.Platform != PlatformID.Win32NT)
{
reason = "Windows 95/98/ME will not run OpenSim";
return false;
}
// Windows 2000 / Pre-SP2 XP
if (System.Environment.OSVersion.Version.Major == 5 && (
System.Environment.OSVersion.Version.Minor == 0 ||
System.Environment.OSVersion.ServicePack == "Service Pack 1"))
{
reason = "Please update to Windows XP Service Pack 2 or Server2003";
return false;
}
return true;
}
public static int UnixTimeSinceEpoch() public static int UnixTimeSinceEpoch()
{ {
TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1)); TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));