After installing an operating system on your device, the various files, libraries and executables are stored in what is called the system directory.

In Windows, it is usually C:\Windows\System32

But not always! The user can decide to install it to any other drive, perhaps D: or E:

Further, this has (historically) been different depending on the flavour and version of the operating system. For example, in Windows NT 4 it was C:\WINNT\System32.

In short - you cannot make any assumptions as to where this is.

You will need to ask the operating system to provide this.

You can access this through the SystemDirectory property of the Environment object.

var systemDirectory = Environment.SystemDirectory;
Console.WriteLine(systemDirectory);

On Windows, it returns this:

C:\WINDOWS\system32

On macOS (Sequoia) it returns this:

/System

On Linux (Ubuntu 24.04.3) it returns an empty string.

If you needed to get the System root itself, we can use the GetPathRoot method of the Path class.


On Windows, it returns this:

C:\

On macOS it returns this:

/

TLDR

You can get the system folder using Environment.SystemDirectory, which we can subsequently use to get the system root.

Happy hacking!