Abfrage Betriebssystem mit C# in .net und Mono

Mit .net und Mono kann man seine Anwendung auch unter Linux oder OSX laufen lassen. Manchmal soll Code nur unter einer bestimmten Plattform ausgeführt werden. Doch wie fragt man dies ab? Die folgende Klasse ermittelt unter welchem Betriebssystem der Code gerade ausgeführt wird:

public class DAPlatform
{
    public enum Platform
    {
        Windows,
        Linux,
        Mac
    }

    public static Platform RunningPlatform()
    {
        switch (Environment.OSVersion.Platform)
        {
            case PlatformID.Unix:
                if (Directory.Exists("/Applications")
                    & Directory.Exists("/System")
                    & Directory.Exists("/Users")
                    & Directory.Exists("/Volumes"))
                    return Platform.Mac;
                else
                    return Platform.Linux;

            case PlatformID.MacOSX:
                return Platform.Mac;

            default:
                return Platform.Windows;
        }
    }
}

[Quelle des Codes auf Stackoverflow](http://stackoverflow.com/questions/10138040/how-to-detect-properly-windows-linux-mac-operating-systems ""

Anschließend kann man durch eine einfach IF-Abfrage Code plattformspezifisch ausführen:

if (DAPlatform.RunningPlatform() == DAPlatform.Platform.Mac) 
{
    //Code, welcher nur unter OSX ausgeführt wird.
}

)

Werbung



comments powered by Disqus

Copyright Dunkel & Iwer GbR | Datenschutzerklärung | Impressum