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.