Как взломать Win32 API, чтобы получить ограничение персонажа до 32K - PullRequest
0 голосов
/ 06 января 2012

Я хочу использовать префикс \\\?\, как указано в этом блоге команды MSDN BCL, Длинные пути в .NET, часть 2 из 3: Обходные пути для длинных путей [Ким Гамильтон]

Даже пройдя через это снова и снова, я не мог понять, как на самом деле использовать эту функцию, задаваясь вопросом, может ли кто-нибудь сказать мне самый простой способ ее использования и как.

Примечание: я хочу использовать его для создания каталога

1 Ответ

3 голосов
/ 06 января 2012

Вы должны использовать функции Win32 и P / Invoke для достижения этой цели. Используйте Unicode-версию API.

Вот что вы ищете:

[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool CreateDirectory(string lpPathName, IntPtr lpSecurityAttributes);

public static void CreateDir(string dirPath)
{
    if (!CreateDirectory(@"\\?\" + dirPath, IntPtr.Zero))
    {
        throw new IOException("Could not create dir");
    }
}

CreateDirectory метод

Дополнительная информация о том, как работает именование в Windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...