Я опубликовал пакет NuGet для этого:
Install-Package BetterWin32Errors
Сначала добавьте использование для библиотеки:
using BetterWin32Errors;
Тогда вы можете использовать это так:
if (!SomeWin32ApiCall(...))
{
var error = Win32Exception.GetLastWin32Error();
if (error == Win32Error.ERROR_FILE_NOT_FOUND)
{
// ...do something...
}
else if (error == Win32Error.ERROR_PATH_NOT_FOUND)
{
// ...do something else...
}
else
{
throw new Win32Exception(error);
}
}
См. на сайте , где приведены дополнительные примеры использования библиотеки.