Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
25 / 14 / 3
Регистрация: 01.12.2010
Сообщений: 69
1

Доступ к файлу

09.09.2011, 14:28. Показов 1542. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Никак не могу понять, почему не получить доступ для перезаписи файла после его чтения. Как его правильно "отпустить" после прочтения? =)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Читаем изображение с диска
BitmapImage АрхивИзображений = new BitmapImage();
АрхивИзображений.CreateOptions = BitmapCreateOptions.None;
АрхивИзображений.BeginInit();
АрхивИзображений.UriSource = new Uri(AppDomain.CurrentDomain.BaseDirectory + "8.png", UriKind.Absolute);
АрхивИзображений.EndInit();
            
// Рисуем что-то на изображении
DrawingVisual Vis = new DrawingVisual();
using (DrawingContext Контекст = Vis.RenderOpen())
{
    Rect РазмерыИзображения = new Rect(0, 0, АрхивИзображений.PixelWidth, АрхивИзображений.PixelHeight);
    Контекст.DrawImage(АрхивИзображений, РазмерыИзображения);
 
    РазмерыИзображения.Location = new Point(50, 50);
    Контекст.DrawImage(АрхивИзображений, РазмерыИзображения);
}            
RenderTargetBitmap Битмап = new RenderTargetBitmap(500, 500, 96, 96, PixelFormats.Pbgra32);
Битмап.Render(Vis);
 
// Сохраняем как PNG
PngBitmapEncoder ПнгИнкодер = new PngBitmapEncoder();
ПнгИнкодер.Interlace = PngInterlaceOption.On;
ПнгИнкодер.Frames.Add(BitmapFrame.Create(Битмап));
            
using (FileStream stream = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "8.PNG", FileMode.Create))
{
    ПнгИнкодер.Save(stream);
    stream.Flush();
    stream.Close();
}
Ошибка вылетает в строчке с FileStream, что файл занят другим процессом.
Вложения
Тип файла: rar WpfApplication1.rar (277.6 Кб, 10 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2011, 14:28
Ответы с готовыми решениями:

Доступ к файлу
Доброго времени суток, дорогие форумчане. Подскажите пожалуйста, необходимо разработать небольшую...

Доступ к файлу
Всем доброго времени суток. Вообщем пишу кусочек кода для работы с файлами: public void...

Многопоточный доступ к файлу
видел, эта тема обсасывалась не раз на просторах сайберфорума, но никаких продвижений по этому...

Закрыть доступ к файлу
Читал про реализацию этого метода, но что-то у меня не выходит) Исправьте пожалуйста. Мне нужно...

3
25 / 14 / 3
Регистрация: 01.12.2010
Сообщений: 69
10.09.2011, 10:58  [ТС] 2
Ответ оказался достаточно прост . Необходимо кэшировать в памяти изображение, а то во время записи, будут попытки прочитать из файла.

C#
1
2
3
4
АрхивИзображений.BeginInit();
АрхивИзображений.CacheOption = BitmapCacheOption.OnLoad;  
АрхивИзображений.UriSource = new Uri(AppDomain.CurrentDomain.BaseDirectory + "8.png", UriKind.Absolute);
АрхивИзображений.EndInit();
При том обязательно между .BeginInit(); и .EndInit(); Будут рад, если кому-нибуть пригодится.
0
epik
10.09.2011, 11:00
  #3

Не по теме:

Использование русских переменных пример плохого тона.

0
nio
11.09.2011, 09:54     Доступ к файлу
  #4

Не по теме:

Цитата Сообщение от epik Посмотреть сообщение
Использование русских переменных пример плохого тона.
Использование русских переменных улучшает читабельность кода и никак не влияет на его производительность, поэтому к плохому тону никак не может относится

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2011, 09:54

Доступ к занятому файлу
Возникла ещё одна проблема, теперь уже с удалением файла, который мы находим. Суть идеи такова:...

Ограничен доступ к файлу
Вставляю картинки в дата грид ваев. После чего некоторые необходимо переименовать. Однако это...

Разграничить доступ к файлу
Здравствуйте. Есть два приложения. Одно в файл пишет, а другой читает. Иногда случается так, что...

Доступ к xml-файлу
У меня есть переменная string fpath; //путь к файлу. Когда я хочу задать доступ к xml - файлу...

Доступ к закрытому файлу невозможен
Пишу программу для приёма и отправки файлов по сети. Такой код на отправку файла private...

Выдача привилегий на доступ к файлу
Доброго времени суток, у меня возникла проблем с доступом к файлу, изначально я доступ к файлу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru