Press ENTER to search everything

Directory.​GetCurrentDirectory() Method

Summary

Code

public static string GetCurrentDirectory()
{
    StringBuilder stringBuilder = new StringBuilder(261);
    if (Win32Native.GetCurrentDirectory(stringBuilder.Capacity, stringBuilder) == 0)
    {
        __Error.WinIOError();
    }
    string text = stringBuilder.ToString();
    if (text.IndexOf('~') >= 0)
    {
        int longPathName = Win32Native.GetLongPathName(text, stringBuilder, stringBuilder.Capacity);
        if (longPathName == 0 || longPathName >= 260)
        {
            int lastWin32Error = Marshal.GetLastWin32Error();
            if (longPathName >= 260)
            {
                lastWin32Error = 206;
            }
            if (lastWin32Error == 2 || lastWin32Error == 3 || lastWin32Error == 1 || lastWin32Error == 5)
            {
                goto IL_78;
            }
            __Error.WinIOError(lastWin32Error, string.Empty);
        }
        IL_78:
        text = stringBuilder.ToString();
    }
    string demandDir = Directory.GetDemandDir(text, true);
    new FileIOPermission(FileIOPermissionAccess.PathDiscovery, new string[]
    {
        demandDir
    }, false, false).Demand();
    return text;
}