using System;
using System.Collections;
using System.Diagnostics;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Text;
using Microsoft.Win32;
namespace System
{
/// Provides information about, and means to manipulate, the current environment and platform. This class cannot be inherited.
/// 1
// Token: 0x02000666 RID: 1638
[ComVisible(true)]
public static class Environment
{
/// Gets the command line for this process.
/// A string containing command-line arguments.
/// 1
///
///
///
// Token: 0x17000B8B RID: 2955
// (get) Token: 0x06003E26 RID: 15910 RVA: 0x000D3730 File Offset: 0x000D1930
public static string CommandLine
{
get
{
return string.Join(" ", Environment.GetCommandLineArgs());
}
}
/// Gets or sets the fully qualified path of the current working directory.
/// A string containing a directory path.
/// Attempted to set to an empty string ("").
/// Attempted to set to null.
/// An I/O error occurred.
/// Attempted to set a local path that cannot be found.
/// The caller does not have the appropriate permission.
/// 1
///
///
///
///
// Token: 0x17000B8C RID: 2956
// (get) Token: 0x06003E27 RID: 15911 RVA: 0x000D3744 File Offset: 0x000D1944
// (set) Token: 0x06003E28 RID: 15912 RVA: 0x000D374C File Offset: 0x000D194C
public static string CurrentDirectory
{
get
{
return Directory.GetCurrentDirectory();
}
set
{
Directory.SetCurrentDirectory(value);
}
}
/// Gets or sets the exit code of the process.
/// A 32-bit signed integer containing the exit code. The default value is zero.
/// 1
// Token: 0x17000B8D RID: 2957
// (get) Token: 0x06003E29 RID: 15913
// (set) Token: 0x06003E2A RID: 15914
public static extern int ExitCode
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
set;
}
/// Gets a value indicating whether the common language runtime is shutting down or the current application domain is unloading.
/// true if the common language runtime is shutting down or the current is unloading; otherwise, false.The current application domain is the that contains the object that is calling .
/// 1
// Token: 0x17000B8E RID: 2958
// (get) Token: 0x06003E2B RID: 15915
public static extern bool HasShutdownStarted
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
// Token: 0x17000B8F RID: 2959
// (get) Token: 0x06003E2C RID: 15916
public static extern string EmbeddingHostName
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
// Token: 0x17000B90 RID: 2960
// (get) Token: 0x06003E2D RID: 15917
public static extern bool SocketSecurityEnabled
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
// Token: 0x17000B91 RID: 2961
// (get) Token: 0x06003E2E RID: 15918 RVA: 0x000D3754 File Offset: 0x000D1954
public static bool UnityWebSecurityEnabled
{
get
{
return Environment.SocketSecurityEnabled;
}
}
/// Gets the NetBIOS name of this local computer.
/// A string containing the name of this computer.
/// The name of this computer cannot be obtained.
/// 1
///
///
///
///
// Token: 0x17000B92 RID: 2962
// (get) Token: 0x06003E2F RID: 15919
public static extern string MachineName
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
/// Gets the newline string defined for this environment.
/// A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.
/// 1
// Token: 0x17000B93 RID: 2963
// (get) Token: 0x06003E30 RID: 15920
public static extern string NewLine
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
// Token: 0x17000B94 RID: 2964
// (get) Token: 0x06003E31 RID: 15921
internal static extern PlatformID Platform
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
// Token: 0x06003E32 RID: 15922
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern string GetOSVersionString();
/// Gets an object that contains the current platform identifier and version number.
/// An object.
/// This property was unable to obtain the system version.-or- The obtained platform identifier is not a member of .
/// 1
// Token: 0x17000B95 RID: 2965
// (get) Token: 0x06003E33 RID: 15923 RVA: 0x000D375C File Offset: 0x000D195C
public static OperatingSystem OSVersion
{
get
{
if (Environment.os == null)
{
Version version = Version.CreateFromString(Environment.GetOSVersionString());
PlatformID platform = Environment.Platform;
Environment.os = new OperatingSystem(platform, version);
}
return Environment.os;
}
}
/// Gets current stack trace information.
/// A string containing stack trace information. This value can be .
/// The requested stack trace information is out of range.
/// 1
///
///
///
///
// Token: 0x17000B96 RID: 2966
// (get) Token: 0x06003E34 RID: 15924 RVA: 0x000D3798 File Offset: 0x000D1998
public static string StackTrace
{
get
{
StackTrace stackTrace = new StackTrace(0, true);
return stackTrace.ToString();
}
}
/// Gets the number of milliseconds elapsed since the system started.
/// A 32-bit signed integer containing the amount of time in milliseconds that has passed since the last time the computer was started.
/// 1
// Token: 0x17000B97 RID: 2967
// (get) Token: 0x06003E35 RID: 15925
public static extern int TickCount
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
/// Gets the network domain name associated with the current user.
/// The network domain name associated with the current user.
/// The operating system does not support retrieving the network domain name.
/// The network domain name cannot be retrieved.
/// 1
///
///
///
// Token: 0x17000B98 RID: 2968
// (get) Token: 0x06003E36 RID: 15926 RVA: 0x000D37B4 File Offset: 0x000D19B4
public static string UserDomainName
{
get
{
return Environment.MachineName;
}
}
/// Gets a value indicating whether the current process is running in user interactive mode.
/// true if the current process is running in user interactive mode; otherwise, false.
/// 1
// Token: 0x17000B99 RID: 2969
// (get) Token: 0x06003E37 RID: 15927 RVA: 0x000D37BC File Offset: 0x000D19BC
[MonoTODO("Currently always returns false, regardless of interactive state")]
public static bool UserInteractive
{
get
{
return false;
}
}
/// Gets the user name of the person who is currently logged on to the Windows operating system.
/// The user name of the person who is logged on to Windows.
/// 1
///
///
///
// Token: 0x17000B9A RID: 2970
// (get) Token: 0x06003E38 RID: 15928
public static extern string UserName
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
/// Gets a object that describes the major, minor, build, and revision numbers of the common language runtime.
/// A object.
/// 1
// Token: 0x17000B9B RID: 2971
// (get) Token: 0x06003E39 RID: 15929 RVA: 0x000D37C0 File Offset: 0x000D19C0
public static Version Version
{
get
{
return new Version("2.0.50727.1433");
}
}
/// Gets the amount of physical memory mapped to the process context.
/// A 64-bit signed integer containing the number of bytes of physical memory mapped to the process context.
/// 1
///
///
///
// Token: 0x17000B9C RID: 2972
// (get) Token: 0x06003E3A RID: 15930 RVA: 0x000D37CC File Offset: 0x000D19CC
[MonoTODO("Currently always returns zero")]
public static long WorkingSet
{
get
{
return 0L;
}
}
/// Terminates this process and gives the underlying operating system the specified exit code.
/// Exit code to be given to the operating system.
/// The caller does not have sufficient security permission to perform this function.
/// 1
///
///
///
// Token: 0x06003E3B RID: 15931
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern void Exit(int exitCode);
/// Replaces the name of each environment variable embedded in the specified string with the string equivalent of the value of the variable, then returns the resulting string.
/// A string with each environment variable replaced by its value.
/// A string containing the names of zero or more environment variables. Each environment variable is quoted with the percent sign character (%).
///
/// is null.
/// 1
///
///
///
// Token: 0x06003E3C RID: 15932 RVA: 0x000D37D0 File Offset: 0x000D19D0
public static string ExpandEnvironmentVariables(string name)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
int num = name.IndexOf('%');
if (num == -1)
{
return name;
}
int length = name.Length;
int num2;
if (num == length - 1 || (num2 = name.IndexOf('%', num + 1)) == -1)
{
return name;
}
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(name, 0, num);
Hashtable hashtable = null;
do
{
string text = name.Substring(num + 1, num2 - num - 1);
string text2 = Environment.GetEnvironmentVariable(text);
if (text2 == null && Environment.IsRunningOnWindows)
{
if (hashtable == null)
{
hashtable = Environment.GetEnvironmentVariablesNoCase();
}
text2 = hashtable[text] as string;
}
if (text2 == null)
{
stringBuilder.Append('%');
stringBuilder.Append(text);
num2--;
}
else
{
stringBuilder.Append(text2);
}
int num3 = num2;
num = name.IndexOf('%', num2 + 1);
num2 = ((num != -1 && num2 <= length - 1) ? name.IndexOf('%', num + 1) : (-1));
int num4;
if (num == -1 || num2 == -1)
{
num4 = length - num3 - 1;
}
else if (text2 != null)
{
num4 = num - num3 - 1;
}
else
{
num4 = num - num3;
}
if (num >= num3 || num == -1)
{
stringBuilder.Append(name, num3 + 1, num4);
}
}
while (num2 > -1 && num2 < length);
return stringBuilder.ToString();
}
/// Returns a string array containing the command-line arguments for the current process.
/// An array of string where each element contains a command-line argument. The first element is the executable file name, and the following zero or more elements contain the remaining command-line arguments.
/// The system does not support command-line arguments.
/// 1
///
///
///
// Token: 0x06003E3D RID: 15933
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern string[] GetCommandLineArgs();
// Token: 0x06003E3E RID: 15934
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern string internalGetEnvironmentVariable(string variable);
/// Retrieves the value of an environment variable from the current process.
/// The value of the environment variable specified by , or null if the environment variable is not found.
/// The name of the environment variable.
///
/// is null.
/// The caller does not have the required permission to perform this operation.
/// 1
///
///
///
// Token: 0x06003E3F RID: 15935 RVA: 0x000D3944 File Offset: 0x000D1B44
public static string GetEnvironmentVariable(string variable)
{
return Environment.internalGetEnvironmentVariable(variable);
}
// Token: 0x06003E40 RID: 15936 RVA: 0x000D394C File Offset: 0x000D1B4C
private static Hashtable GetEnvironmentVariablesNoCase()
{
Hashtable hashtable = new Hashtable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default);
foreach (string text in Environment.GetEnvironmentVariableNames())
{
hashtable[text] = Environment.internalGetEnvironmentVariable(text);
}
return hashtable;
}
/// Retrieves all environment variable names and their values from the current process.
/// An that contains all environment variable names and their values; otherwise, an empty dictionary if no environment variables are found.
/// The caller does not have the required permission to perform this operation.
/// The buffer is out of memory.
/// 1
///
///
///
// Token: 0x06003E41 RID: 15937 RVA: 0x000D3998 File Offset: 0x000D1B98
public static IDictionary GetEnvironmentVariables()
{
Hashtable hashtable = new Hashtable();
foreach (string text in Environment.GetEnvironmentVariableNames())
{
hashtable[text] = Environment.internalGetEnvironmentVariable(text);
}
return hashtable;
}
// Token: 0x06003E42 RID: 15938
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern string GetWindowsFolderPath(int folder);
/// Gets the path to the system special folder identified by the specified enumeration.
/// The path to the specified system special folder, if that folder physically exists on your computer; otherwise, the empty string ("").A folder will not physically exist if the operating system did not create it, the existing folder was deleted, or the folder is a virtual directory, such as My Computer, which does not correspond to a physical path.
/// An enumerated constant that identifies a system special folder.
///
/// is not a member of .
/// The current platform is not supported.
/// 1
///
///
///
// Token: 0x06003E43 RID: 15939 RVA: 0x000D39D8 File Offset: 0x000D1BD8
public static string GetFolderPath(Environment.SpecialFolder folder)
{
string text;
if (Environment.IsRunningOnWindows)
{
text = Environment.GetWindowsFolderPath((int)folder);
}
else
{
text = Environment.InternalGetFolderPath(folder);
}
return text;
}
// Token: 0x06003E44 RID: 15940 RVA: 0x000D3A08 File Offset: 0x000D1C08
private static string ReadXdgUserDir(string config_dir, string home_dir, string key, string fallback)
{
string text = Environment.internalGetEnvironmentVariable(key);
if (text != null && text != string.Empty)
{
return text;
}
string text2 = Path.Combine(config_dir, "user-dirs.dirs");
if (!File.Exists(text2))
{
return Path.Combine(home_dir, fallback);
}
try
{
using (StreamReader streamReader = new StreamReader(text2))
{
string text3;
while ((text3 = streamReader.ReadLine()) != null)
{
text3 = text3.Trim();
int num = text3.IndexOf('=');
if (num > 8 && text3.Substring(0, num) == key)
{
string text4 = text3.Substring(num + 1).Trim(new char[] { '"' });
bool flag = false;
if (text4.StartsWith("$HOME/"))
{
flag = true;
text4 = text4.Substring(6);
}
else if (!text4.StartsWith("/"))
{
flag = true;
}
return (!flag) ? text4 : Path.Combine(home_dir, text4);
}
}
}
}
catch (FileNotFoundException)
{
}
return Path.Combine(home_dir, fallback);
}
// Token: 0x06003E45 RID: 15941 RVA: 0x000D3B68 File Offset: 0x000D1D68
internal static string InternalGetFolderPath(Environment.SpecialFolder folder)
{
string text = Environment.internalGetHome();
string text2 = Environment.internalGetEnvironmentVariable("XDG_DATA_HOME");
if (text2 == null || text2 == string.Empty)
{
text2 = Path.Combine(text, ".local");
text2 = Path.Combine(text2, "share");
}
string text3 = Environment.internalGetEnvironmentVariable("XDG_CONFIG_HOME");
if (text3 == null || text3 == string.Empty)
{
text3 = Path.Combine(text, ".config");
}
switch (folder)
{
case Environment.SpecialFolder.Desktop:
case Environment.SpecialFolder.DesktopDirectory:
return Environment.ReadXdgUserDir(text3, text, "XDG_DESKTOP_DIR", "Desktop");
case Environment.SpecialFolder.Programs:
case Environment.SpecialFolder.Favorites:
case Environment.SpecialFolder.Startup:
case Environment.SpecialFolder.Recent:
case Environment.SpecialFolder.SendTo:
case Environment.SpecialFolder.StartMenu:
case Environment.SpecialFolder.Templates:
case Environment.SpecialFolder.InternetCache:
case Environment.SpecialFolder.Cookies:
case Environment.SpecialFolder.History:
case Environment.SpecialFolder.System:
case Environment.SpecialFolder.ProgramFiles:
case Environment.SpecialFolder.CommonProgramFiles:
return string.Empty;
case Environment.SpecialFolder.MyDocuments:
return text;
case Environment.SpecialFolder.MyMusic:
return Environment.ReadXdgUserDir(text3, text, "XDG_MUSIC_DIR", "Music");
case Environment.SpecialFolder.MyComputer:
return string.Empty;
case Environment.SpecialFolder.ApplicationData:
return text3;
case Environment.SpecialFolder.LocalApplicationData:
return text2;
case Environment.SpecialFolder.CommonApplicationData:
return "/usr/share";
case Environment.SpecialFolder.MyPictures:
return Environment.ReadXdgUserDir(text3, text, "XDG_PICTURES_DIR", "Pictures");
}
throw new ArgumentException("Invalid SpecialFolder");
}
/// Returns an array of string containing the names of the logical drives on the current computer.
/// An array of strings where each element contains the name of a logical drive. For example, if the computer's hard drive is the first logical drive, the first element returned is "C:\".
/// An I/O error occurs.
/// The caller does not have the required permissions.
/// 1
///
///
///
// Token: 0x06003E46 RID: 15942 RVA: 0x000D3CF8 File Offset: 0x000D1EF8
public static string[] GetLogicalDrives()
{
return Environment.GetLogicalDrivesInternal();
}
// Token: 0x06003E47 RID: 15943
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void internalBroadcastSettingChange();
/// Retrieves the value of an environment variable from the current process or from the Windows operating system registry key for the current user or local machine.
/// The value of the environment variable specified by the and parameters, or null if the environment variable is not found.
/// The name of an environment variable.
/// One of the values.
///
/// is null.
///
/// is or and the current operating system is Windows 95, Windows 98, or Windows Me.
///
/// is not a valid value.
/// The caller does not have the required permission to perform this operation.
/// 1
///
///
///
///
///
// Token: 0x06003E48 RID: 15944 RVA: 0x000D3D00 File Offset: 0x000D1F00
public static string GetEnvironmentVariable(string variable, EnvironmentVariableTarget target)
{
switch (target)
{
case EnvironmentVariableTarget.Process:
return Environment.GetEnvironmentVariable(variable);
case EnvironmentVariableTarget.User:
break;
case EnvironmentVariableTarget.Machine:
{
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
if (!Environment.IsRunningOnWindows)
{
return null;
}
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"))
{
object value = registryKey.GetValue(variable);
return (value != null) ? value.ToString() : null;
}
break;
}
default:
goto IL_D7;
}
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
if (!Environment.IsRunningOnWindows)
{
return null;
}
using (RegistryKey registryKey2 = Registry.CurrentUser.OpenSubKey("Environment", false))
{
object value2 = registryKey2.GetValue(variable);
return (value2 != null) ? value2.ToString() : null;
}
IL_D7:
throw new ArgumentException("target");
}
/// Retrieves all environment variable names and their values from the current process, or from the Windows operating system registry key for the current user or local machine.
/// An object that contains all environment variable names and their values from the source specified by the parameter; otherwise, an empty dictionary if no environment variables are found.
/// One of the values.
/// The caller does not have the required permission to perform this operation for the specified value of .
/// This method cannot be used on Windows 95 or Windows 98 platforms.
///
/// contains an illegal value.
/// 1
///
///
///
///
///
// Token: 0x06003E49 RID: 15945 RVA: 0x000D3E28 File Offset: 0x000D2028
public static IDictionary GetEnvironmentVariables(EnvironmentVariableTarget target)
{
IDictionary dictionary = new Hashtable();
switch (target)
{
case EnvironmentVariableTarget.Process:
dictionary = Environment.GetEnvironmentVariables();
break;
case EnvironmentVariableTarget.User:
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
if (Environment.IsRunningOnWindows)
{
using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("Environment"))
{
string[] valueNames = registryKey.GetValueNames();
foreach (string text in valueNames)
{
dictionary.Add(text, registryKey.GetValue(text));
}
}
}
break;
case EnvironmentVariableTarget.Machine:
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
if (Environment.IsRunningOnWindows)
{
using (RegistryKey registryKey2 = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"))
{
string[] valueNames2 = registryKey2.GetValueNames();
foreach (string text2 in valueNames2)
{
dictionary.Add(text2, registryKey2.GetValue(text2));
}
}
}
break;
default:
throw new ArgumentException("target");
}
return dictionary;
}
/// Creates, modifies, or deletes an environment variable stored in the current process.
/// The name of an environment variable.
/// A value to assign to .
///
/// is null.
///
/// contains a zero-length string, an initial hexadecimal zero character (0x00), or an equal sign ("="). -or-The length of or is greater than or equal to 32,767 characters.-or-An error occurred during the execution of this operation.
/// The caller does not have the required permission to perform this operation.
/// 1
///
///
///
// Token: 0x06003E4A RID: 15946 RVA: 0x000D3F94 File Offset: 0x000D2194
public static void SetEnvironmentVariable(string variable, string value)
{
Environment.SetEnvironmentVariable(variable, value, EnvironmentVariableTarget.Process);
}
/// Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine.
/// The name of an environment variable.
/// A value to assign to .
/// One of the values.
///
/// is null.
///
/// contains a zero-length string, an initial hexadecimal zero character (0x00), or an equal sign ("="). -or-The length of is greater than or equal to 32,767 characters.-or- is not a member of the enumeration. -or- is or and the length of is greater than or equal to 255.-or- is and the length of is greater than or equal to 32,767 characters. -or-An error occurred during the execution of this operation.
///
/// is or and the current operating system is Windows 95, Windows 98, or Windows Me.
/// The caller does not have the required permission to perform this operation.
/// 1
///
///
///
///
///
// Token: 0x06003E4B RID: 15947 RVA: 0x000D3FA0 File Offset: 0x000D21A0
public static void SetEnvironmentVariable(string variable, string value, EnvironmentVariableTarget target)
{
if (variable == null)
{
throw new ArgumentNullException("variable");
}
if (variable == string.Empty)
{
throw new ArgumentException("String cannot be of zero length.", "variable");
}
if (variable.IndexOf('=') != -1)
{
throw new ArgumentException("Environment variable name cannot contain an equal character.", "variable");
}
if (variable[0] == '\0')
{
throw new ArgumentException("The first char in the string is the null character.", "variable");
}
switch (target)
{
case EnvironmentVariableTarget.Process:
Environment.InternalSetEnvironmentVariable(variable, value);
break;
case EnvironmentVariableTarget.User:
{
if (!Environment.IsRunningOnWindows)
{
return;
}
using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("Environment", true))
{
if (string.IsNullOrEmpty(value))
{
registryKey.DeleteValue(variable, false);
}
else
{
registryKey.SetValue(variable, value);
}
Environment.internalBroadcastSettingChange();
}
break;
}
case EnvironmentVariableTarget.Machine:
{
if (!Environment.IsRunningOnWindows)
{
return;
}
using (RegistryKey registryKey2 = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", true))
{
if (string.IsNullOrEmpty(value))
{
registryKey2.DeleteValue(variable, false);
}
else
{
registryKey2.SetValue(variable, value);
}
Environment.internalBroadcastSettingChange();
}
break;
}
default:
throw new ArgumentException("target");
}
}
// Token: 0x06003E4C RID: 15948
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern void InternalSetEnvironmentVariable(string variable, string value);
/// Terminates a process but does not execute any active try-finally blocks or finalizers.
/// A message that explains why the process was terminated, or null if no explanation is provided.
// Token: 0x06003E4D RID: 15949 RVA: 0x000D412C File Offset: 0x000D232C
[MonoTODO("Not implemented")]
public static void FailFast(string message)
{
throw new NotImplementedException();
}
/// Gets the number of processors on the current machine.
/// The 32-bit signed integer that specifies the number of processors on the current machine. There is no default.
/// 1
///
///
///
// Token: 0x17000B9D RID: 2973
// (get) Token: 0x06003E4E RID: 15950
public static extern int ProcessorCount
{
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
// Token: 0x17000B9E RID: 2974
// (get) Token: 0x06003E4F RID: 15951 RVA: 0x000D4134 File Offset: 0x000D2334
internal static bool IsRunningOnWindows
{
get
{
return Environment.Platform < PlatformID.Unix;
}
}
// Token: 0x06003E50 RID: 15952
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern string[] GetLogicalDrivesInternal();
// Token: 0x06003E51 RID: 15953
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern string[] GetEnvironmentVariableNames();
// Token: 0x06003E52 RID: 15954
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern string GetMachineConfigPath();
// Token: 0x06003E53 RID: 15955
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern string internalGetHome();
// Token: 0x040018DE RID: 6366
private const int mono_corlib_version = 82;
// Token: 0x040018DF RID: 6367
private static OperatingSystem os;
/// Specifies enumerated constants used to retrieve directory paths to system special folders.
// Token: 0x02000667 RID: 1639
[ComVisible(true)]
public enum SpecialFolder
{
/// The "My Documents" folder.
// Token: 0x040018E1 RID: 6369
MyDocuments = 5,
/// The logical Desktop rather than the physical file system location.
// Token: 0x040018E2 RID: 6370
Desktop = 0,
/// The "My Computer" folder.
// Token: 0x040018E3 RID: 6371
MyComputer = 17,
/// The directory that contains the user's program groups.
// Token: 0x040018E4 RID: 6372
Programs = 2,
/// The directory that serves as a common repository for documents.
// Token: 0x040018E5 RID: 6373
Personal = 5,
/// The directory that serves as a common repository for the user's favorite items.
// Token: 0x040018E6 RID: 6374
Favorites,
/// The directory that corresponds to the user's Startup program group.
// Token: 0x040018E7 RID: 6375
Startup,
/// The directory that contains the user's most recently used documents.
// Token: 0x040018E8 RID: 6376
Recent,
/// The directory that contains the Send To menu items.
// Token: 0x040018E9 RID: 6377
SendTo,
/// The directory that contains the Start menu items.
// Token: 0x040018EA RID: 6378
StartMenu = 11,
/// The "My Music" folder.
// Token: 0x040018EB RID: 6379
MyMusic = 13,
/// The directory used to physically store file objects on the desktop.
// Token: 0x040018EC RID: 6380
DesktopDirectory = 16,
/// The directory that serves as a common repository for document templates.
// Token: 0x040018ED RID: 6381
Templates = 21,
/// The directory that serves as a common repository for application-specific data for the current roaming user.
// Token: 0x040018EE RID: 6382
ApplicationData = 26,
/// The directory that serves as a common repository for application-specific data that is used by the current, non-roaming user.
// Token: 0x040018EF RID: 6383
LocalApplicationData = 28,
/// The directory that serves as a common repository for temporary Internet files.
// Token: 0x040018F0 RID: 6384
InternetCache = 32,
/// The directory that serves as a common repository for Internet cookies.
// Token: 0x040018F1 RID: 6385
Cookies,
/// The directory that serves as a common repository for Internet history items.
// Token: 0x040018F2 RID: 6386
History,
/// The directory that serves as a common repository for application-specific data that is used by all users.
// Token: 0x040018F3 RID: 6387
CommonApplicationData,
/// The System directory.
// Token: 0x040018F4 RID: 6388
System = 37,
/// The program files directory.
// Token: 0x040018F5 RID: 6389
ProgramFiles,
/// The "My Pictures" folder.
// Token: 0x040018F6 RID: 6390
MyPictures,
/// The directory for components that are shared across applications.
// Token: 0x040018F7 RID: 6391
CommonProgramFiles = 43
}
}
}