如何获取字体文件名

本文关键字:字体 文件名 获取 何获取 | 更新日期: 2023-09-27 18:08:34

我已经写了下面的代码:

List<string> fontNames = new List<string>();
foreach (FontFamily font in FontFamily.Families)
{
    fontNames.Add(font.Name);
}

来获取字体名称,但是假设你想将字体复制到另一个文件夹,我如何获得字体的文件名来进行复制操作?

谢谢。

如何获取字体文件名

如果你能够访问注册表,那么你可以从密钥中获得文件名:'HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows NT'CurrentVersion'Fonts',基本上每个字体文件都放在C:'Windows'Fonts中,除非在其他地方提到。

在CP上有一个c++解决方案可以从HFONT GDI+字体句柄中获取文件名。

您可以首先使用Font.ToHfont()方法来获取字体句柄,然后使用上述CP文章中的代码。当然,这需要使用一些PInvoke将c++代码重写为c#。