public static List <string> getPathList(System.EnvironmentVariableTarget target) { List <string> pathList = new List <string>(); string pathStr = System.Environment.GetEnvironmentVariable("Path", target); if (pathStr == null) { return(pathList); } pathStr = pathStr.TrimEnd(';'); if (pathStr.Length == 0) { return(pathList); } string[] pathArray = pathStr.Split(';'); foreach (string path in pathArray) { if (path.EndsWith("\\")) { pathList.Add(path.TrimEnd('\\')); } else { pathList.Add(path); } } return(pathList); }
public static void setPathList(List <string> pathList, System.EnvironmentVariableTarget target) { if (pathList.Count == 0) { return; } System.Environment.SetEnvironmentVariable("Path", System.String.Join(";", pathList) + ";", target); }
public static string GetEnvironmentVariable(string variable, System.EnvironmentVariableTarget target) { if (target != System.EnvironmentVariableTarget.Process) { throw new System.ArgumentException(); } return(GetEnvironmentVariable(variable)); }
/// <summary> /// Creates an environment variable by given <paramref name="name"/>, <paramref name="value"/> and optionally - <paramref name="target"/>. /// </summary> /// <param name="name">The name of the environment variable.</param> /// <param name="value">The value of the environment variable.</param> /// <param name="target">The <see cref="System.EnvironmentVariableTarget"/> of the variable.</param> internal static void CreateEnvironmentVariable(string name, string value, System.EnvironmentVariableTarget target = System.EnvironmentVariableTarget.User) { try { System.Environment.SetEnvironmentVariable(name, value, target); } catch (System.Exception) { Internal.Error($"Cannot create environment variable with name {name} and value {value} due to exception."); } }
/// <summary> /// Find environment variable values with given <paramref name="name"/>. /// </summary> /// <param name="name">Name of environment variable.</param> /// <param name="target">Environment variable target.</param> /// <returns>Array of results if found, an empty array if not found.</returns> public static string[] GetAll(string name, System.EnvironmentVariableTarget target = System.EnvironmentVariableTarget.Process) { var result = System.Environment.GetEnvironmentVariable(name, target); if (result == null) { return new string[] { } } ; return(result.Split(Path.PathSeparator)); }
/// <summary> /// Find file with given <paramref name="filename"/> in environment <paramref name="envVariable"/> /// and environment target <paramref name="target"/>. /// </summary> /// <param name="filename">Name of file.</param> /// <param name="envVariable">Environment variable - default: PATH.</param> /// <param name="target">Environment target to search in.</param> /// <returns>FileInfo of file with given <paramref name="filename"/> if found - otherwise null.</returns> public static FileInfo FindFile(string filename, string envVariable = "PATH", System.EnvironmentVariableTarget target = System.EnvironmentVariableTarget.Process) { var env = GetAll(envVariable, target); foreach (var path in env) { if (File.Exists(path + Path.DirectorySeparatorChar + filename)) { return(new FileInfo(path + Path.DirectorySeparatorChar + filename)); } } return(null); }
/// <summary> /// Find environment variable with given <paramref name="name"/>. /// </summary> /// <param name="name">Name of environment variable.</param> /// <param name="target">Environment variable target.</param> /// <returns>Value the environment variable carries - string.isNullOrEmpty == true if not found.</returns> public static string Get(string name, System.EnvironmentVariableTarget target = System.EnvironmentVariableTarget.Process) { return(GetAll(name, target).FirstOrDefault()); }