O'Reilly logo

C# Cookbook by Jay Hilyard, Stephen Teilhet

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required