Member 13009053 Ответов: 1

Как перечислить шрифты из другого каталога


Я создал список в форме, которая показывает файлы шрифтов, хранящиеся на сетевом диске. Работает отлично, но мне нужен список, чтобы показать шрифт "фамилия" / "название", а не имя файла. т. е.: Arial, Arial Black, Calibri, Tahoma и т. д.......

Что я уже пробовал:

Public Sub LoadList2()
       'loading list of fonts in network folder
       Dim directory = "c:\Odds & Ends\FontSync\MasterFontList"
       Dim files() As System.IO.FileInfo
       Dim dirinfo As New System.IO.DirectoryInfo(Directory)
       files = dirinfo.GetFiles()
       For Each file In files
           ListBox2.Items.Add(file.Name)
       Next
   End Sub

ZurdoDev

Как получить семейное имя шрифта из файла шрифта?

1 Ответов

Рейтинг:
1

OriginalGriff

Попробуй:

Dim fontCol As New PrivateFontCollection()
fontCol.AddFontFile("D:\Test Data\MyFont.otf")
Console.WriteLine(fontCol.Families(0).Name)


Member 13009053

Спасибо за быстрый ответ. Код, который вы предоставили, кажется мне, что он вернет данные для 1 одного шрифта. Мое желание состоит в том, чтобы заполнить список всеми шрифтами, которые находятся в сетевой папке.?

OriginalGriff

Так что используйте петлю ...

Member 13009053

Я искал решение проблемы" петли", но мне не повезло. Не могли бы вы оказать небольшую помощь в отображении всех шрифтов в каталоге?

OriginalGriff

Какую его часть вы знаете, как это сделать? Какой бит доставляет вам проблемы?

OriginalGriff

Потому что ты говоришь:
"Я создал список в форме, которая показывает файлы шрифтов, хранящиеся на сетевом диске. Отлично работает"
Так что трудно понять, какая помощь вам нужна! :смеяться:

Member 13009053

Public Sub LoadList3()
Dim fontCol как новая коллекция PrivateFontCollection()
фонткол.AddFontFile("C:\Odds & Ends\FontSync\MasterFontList\21205__. TTF")
Список listbox1.Предметы.Добавить (fontCol. Families(0). Name)
Конец Подводной Лодки

Вышесказанное-это то, что у меня есть сейчас. Он показывает шрифт " 21205__. TTF "в списке и отображает его как" Jokeman LET " имя шрифта. Указанная папка содержит более 1000 шрифтов, и мне нужен список, чтобы показать все эти шрифты. У меня возникли проблемы с попыткой включить "петлю", на которую вы ссылаетесь в своем 1-м ответе.

OriginalGriff

Итак, когда вы говорите "отлично работает", Вы имеете в виду "совсем не работает"? :смеяться:
Начните с поиска файлов: Вы знаете, как использовать каталог.Заражен?

Member 13009053

Тусклый каталог = "c:\Odds & Ends\FontSync\MasterFontList"
Дим файлы() в качестве системы.ИО.FileInfo может
Дим dirinfo, так как новая система.ИО.Directoryinfoкласс(каталог)
файлы = dirinfo.Заражен("*.ТТФ")
файлы = dirinfo.Заражен("*.ТТФ").Союза(dirinfo.Заражен("*.фон")).Метод toArray()
Для каждого файла в файлах
Список listbox1.Предметы.Добавить(file.Name)

Я также попробовал вышеописанный список всех шрифтов в Каталоге, но показывает "имя файла" , а не " имя шрифта"

OriginalGriff

Таким образом, вы знаете, как называются все файлы, и вы знаете, как получить информацию о шрифте файла.
И вы знаете, как выглядит A для каждого цикла ...
* подсказка * * Подсказка * Итак, сложение этих двух вместе дает вам что? :смеяться:

Member 13009053

Неужели я упускаю что-то, что находится прямо перед моим лицом?

OriginalGriff

О да!
И когда вы замечаете это, это момент: doh:...

Member 13009053

Я ценю, что ты не даешь мне ответа. Я узнаю больше, выяснив это.

OriginalGriff

Таков план! :большой палец вверх:

Member 13009053

Не могу этого понять...... Я не знаю, почему я не могу понять то, что так просто! Я думаю, что лучше всего мне вернуться к этому в другой раз, может быть, это выскочит на меня. Большое вам спасибо за вашу помощь, я напишу, когда решу. Если вы отец, то у вас будет отличный день отцов.

Member 13009053

Я могу получить список файлов шрифтов из каталога\папки.............. Почему я не могу получить имена шрифтов!!!!! Это очень расстраивает!

OriginalGriff

Ладно: ты достаточно настрадался! :смеяться:

Dim files As String() = каталог.GetFiles("D:\Test данные","*. ttf")
Для каждого файла в виде строки в файлах
Dim fontCol как новая коллекция PrivateFontCollection()
фонткол.AddFontFile (файл)
Dim ff As FontFamily = fontCol. Families(0)
Приставка.WriteLine(ff.Name)
Следующий

Member 13009053

OriginalGriff.... Я хотел бы воспользоваться этой возможностью, чтобы поблагодарить вас за вашу квалифицированную помощь. Вы пошли “выше и дальше", помогая мне с моей проблемой. Сначала вы были инструктором, пытающимся указать мне правильное направление, а затем вы дали мне “золотой билет”, когда стало ясно, что я не могу “получить его”. Это была моя первая публикация на этом сайте, и вы сделали ее приятной. Ниже приведен код, который вы мне дали, слегка измененный в соответствии с моими потребностями. Еще раз спасибо!

Частные суб loadlistTTFfonts()
Dim files As String() = каталог.GetFiles("c:\Odds & Ends\FontSync\MasterFontList","*. ttf")
Для каждого файла в виде строки в файлах
Dim fontCol как новая коллекция PrivateFontCollection()
фонткол.AddFontFile (файл)
Dim ff As FontFamily = fontCol. Families(0)
Список listbox1.Предметы.Добавить(ff.Name)
Следующий

Конец Подводной Лодки

OriginalGriff

Пожалуйста!
(Добро пожаловать на сайт, кстати-получайте удовольствие!)