[DllImport("shlwapi.dll", CharSet=CharSet.Auto)]
static extern bool PathUnExpandEnvStrings(string pszPath, [Out] StringBuilder pszBuf, int cchBuf);
<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
This is basically the inverse of ExpandEnvironmentStrings or Environment.ExpandEnvironmentVariables.
Please add some!
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)
Do you know one? Please contribute it!