PathUnExpandEnvStrings (shlwapi)
Last changed: -202.74.138.1

.
Summary
Takes a fully qualified path, and replaces folder names with their associated environment strings.

C# Signature:

[DllImport("shlwapi.dll", CharSet=CharSet.Auto)]
static extern bool PathUnExpandEnvStrings(string pszPath, [Out] StringBuilder pszBuf, int cchBuf);

VB Signature:

<System.Runtime.InteropServices.DllImport("shlwapi.dll", CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
   Shared Function PathUnExpandEnvStrings(ByVal pszPath As String, ByVal lpszPath As System.Text.StringBuilder, ByVal dx As Integer) As Boolean
End Function

Notes:

This is basically the inverse of ExpandEnvironmentStrings or Environment.ExpandEnvironmentVariables.

Tips & Tricks:

Please add some!

Sample Code:

StringBuilder sb = new StringBuilder(MAX_PATH-1);
bool b = PathUnExpandEnvStrings(@"C:\Program Files\Test", sb, sb.Capacity);
// Result: b == true && sb.ToString() == @"%ProgramFiles%\Test"

      Dim sb As New System.Text.StringBuilder(1024)
      Dim b As Boolean = PathUnExpandEnvStrings("C:\Program Files\Test", sb, sb.Capacity)

Alternative Managed API:

Do you know one? Please contribute it!

Documentation