powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удается удалить файл шрифта используемый в System.Windows.Media.GlyphTypeface
3 сообщений из 3, страница 1 из 1
Не удается удалить файл шрифта используемый в System.Windows.Media.GlyphTypeface
    #39354538
YK13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Знает ли кто нибудь как решить следующую проблему?
В моем приложении я читаю файл pdf и встроенные в него шрифты сохраняю в папке на диске.
Далее я анализирую эти файлы при помощи System.Windows.Media.GlyphTypeface
По завершению работы мне необходимо удалить файлы. Но после того как файл использовался в System.Windows.Media.GlyphTypeface при удалении его я получаю UnauthorizedAccessException
Естессвенно я могу далить эти файлы по завершении программы или при следующем старте.
Однако это не совсем подходит.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
///создание файла
...........................

string ff2path = @"C:\Users\progr\YK13\Documents\1.ttf";
Uri u = new Uri(ff2path);
System.Windows.Media.GlyphTypeface gtf = new System.Windows.Media.GlyphTypeface(u);

///анлиз при помощи System.Windows.Media.GlyphTypeface
............................

gtf = null;
GC.Collect();

System.IO.File.Delete(ff2path); ///здесь происходит исключение




Зараннее благодарен за совет
...
Рейтинг: 0 / 0
Не удается удалить файл шрифта используемый в System.Windows.Media.GlyphTypeface
    #39354814
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
quote YK13

Попробуйте так
Код: c#
1.
2.
3.
4.
5.
using (System.Windows.Media.GlyphTypeface gtf = new System.Windows.Media.GlyphTypeface(u))
{
///анлиз при помощи System.Windows.Media.GlyphTypeface
............................
}
...
Рейтинг: 0 / 0
Не удается удалить файл шрифта используемый в System.Windows.Media.GlyphTypeface
    #39355118
YK13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:)) Эта первая мысль которая была и у меня. К сожалению, это не проходит так как этот класс не имплементирует интерфейс IDisposable

В принципе я попробовал сделать вот так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
gtf = null;
GC.Collect();

for(int i = 0; i < 10; i++)
{
     try
     {
           System.IO.File.Delete(ff2path);
           break;
      }
      catch
      { i++; }
}



После первой попытки удаляет файл
Но тут нарисовалась другая проблема: Если я опять создаю файл из ТОГО ЖЕ САМОГО массива байт, то при инициализации объекта GlyphTypeface выбрасывается NullReferenceException. Непонятно изза чего.
При новом старте приложения всё нормально первый раз проходит.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не удается удалить файл шрифта используемый в System.Windows.Media.GlyphTypeface
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]