Как получить путь к папке шрифтов Windows?

Я использую С# для получения точного пути к папке системных шрифтов. Не удалось найти, какой класс /dll делает это.

Ответ 1

string fontsfolder = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Fonts);

Обратите внимание, что папка Fonts в перечислении SpecialFolder доступна только в .Net 4 и далее.

Ответ 2

Для ответов здесь, которые указывают Environment.SpecialFolders.Fonts, это значение перечисления существует только в .NET 4.0 +.

Для .NET 1.1 - 3.5 вы можете сделать следующее:

Папка "Шрифты" находится внутри папки Windows (например, C:\Windows\Fonts). Программно захватите его с помощью следующих шагов:

  • Отключить другую специальную папку, которая существует в перечисляемом значении .NET 2, например, системная папка Environment.SpecialFolder.System.

  • Возьмите родительскую папку в системной папке (получает базовую папку Windows)

  • Совместите имя шрифта в папке Windows, чтобы получить окончательный результат.

В этом примере кода используется папка "Система" и выполняется. Есть и другие папки, которые вы можете отключить.

using System.IO;

// get parent of System folder to have Windows folder
DirectoryInfo dirWindowsFolder = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System));

// Concatenate Fonts folder onto Windows folder.
string strFontsFolder = Path.Combine(dirWindowsFolder.FullName, "Fonts");

// Results in full path e.g. "C:\Windows\Fonts"

Ответ 3

string fontFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Fonts);

Ответ 4

Environment.SpecialFolders.Fonts