11.16. Parsing Paths in Environment Variables

Problem

You need to parse multiple paths contained in environment variables, such as PATH or Include.

Solution

You can use the Path.PathSeparator field or the ; character to extract individual paths from an environment variable whose value consists of multiple paths, and place them in an array. Then you can use a foreach loop to iterate over each individual path in the PATH environment variable and parse each path. This process is illustrated by the ParsePathEnvironmentVariable method:

public static void ParsePathEnvironmentVariable( )
{
    string originalPathEnv = Environment.GetEnvironmentVariable("PATH");
    string[] paths = originalPathEnv.Split(new char[1] {Path.PathSeparator});
    foreach (string s in paths)
    {
        string pathEnv = Environment.ExpandEnvironmentVariables(s);            
        Console.WriteLine("Path = " + pathEnv);
        if(pathEnv.Length > 0)
        {
            Console.WriteLine("Individual Path = " + pathEnv);
        }
        else
        {
            Console.WriteLine("Skipping blank environment path details " +
                    " as it causes exceptions...");
        }
        Console.WriteLine( );
    }
}

If the PATH environment variable contains the following:

PATH=Path=C:\WINDOWS\system32;C:\WINDOWS

then the output of the ParsePathEnvironmentVariable method is as follows:

Path = C:\WINDOWS\system32 GetDirectoryName = C:\WINDOWS GetExtension = GetFileName = system32 GetFileNameWithoutExtension = system32 GetFullPath = C:\WINDOWS\system32 GetPathRoot = C:\ HasExtension = False IsPathRooted = True Path = C:\WINDOWS GetDirectoryName ...

Get C# Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.