Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2011, 15:07   #1
mixa_go
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 10
По умолчанию WPF, удаление файлов.

Доброе время суток, господа-коллеги.
у меня возникла проблема вот какого характера: имеется коллекция с путями размещения файлов-изображений:

Код:
List<string> list = new List<string>();
далее я просматриваю эти изображения:

Код:
ImageBrush IB = new ImageBrush(new BitmapImage(new Uri(list[index])));
IB.Stretch = Stretch.Uniform;
rectangle1.Fill = IB;
по завершению работы приложения, хотелось бы удалить все изображения, пути к которым находятся в коллекции list. делать это пробую в обработчике события ..._Closed().

Код:
foreach (string file in list)
{
    try {        File.Delete(file);    }
    catch (IOException ie) { Messagebox.Show(ie.Message); }
}

в сообщении об исключительной ситуации пишут, что файл занят другим процессом... как бы "малой кровью" выйти из данной ситуации?

У нас принято оформлять код специальным тегом. Кнопка #. Модератор

Последний раз редактировалось dr.Chas; 30.08.2011 в 23:30.
mixa_go вне форума Ответить с цитированием
Старый 30.08.2011, 15:51   #2
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Так может файл действительно занят другим процессом?
the_deer_one вне форума Ответить с цитированием
Старый 30.08.2011, 16:09   #3
mixa_go
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 10
По умолчанию

эмпирическим путем, удалось установить, что не удаляются только те файлы, которые отображались с помощью rectangle1.Fill.

больше нигде эти файлы не используются.
mixa_go вне форума Ответить с цитированием
Старый 30.08.2011, 16:24   #4
mixa_go
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 10
По умолчанию

код XAML:

Код:
<Grid>
        <Grid.RowDefinitions></Grid.RowDefinitions>
        <Grid.ColumnDefinitions></Grid.ColumnDefinitions>
        
        <Rectangle Grid.Column="0" Grid.Row="0" x:Name="rectangle1"></Rectangle>
    </Grid>

C# :


using System;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Forms;
using System.IO;

namespace testDelWPF
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        string file = String.Empty;
        ImageBrush IB = new ImageBrush();

        public MainWindow()
        {
            InitializeComponent();

            OpenFileDialog open = new OpenFileDialog();
            if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                file = open.FileName;

                IB = new ImageBrush(new BitmapImage(new Uri(file)));
                IB.Stretch = Stretch.Uniform;
                rectangle1.Fill = IB;
            }            
        }

        private void Window_Closed(object sender, EventArgs e)
        {
            try
            {
                File.Delete(file);
            }
            catch (IOException ie)
            {
                System.Windows.MessageBox.Show(ie.Message);
            }
        }
    }
}
удаление не происходит.

Последний раз редактировалось dr.Chas; 30.08.2011 в 23:30.
mixa_go вне форума Ответить с цитированием
Старый 30.08.2011, 18:18   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
new BitmapImage(new Uri(list[index]))
Таким образом вы привязываете файл, и не закрываете его. Загружайте BitmapImage через MemoryStream. Как это сделать, в сети просто найти.
BOBAH13 вне форума Ответить с цитированием
Старый 30.08.2011, 20:07   #6
mixa_go
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 10
По умолчанию

ВОВАН13 - мужчина! спасибо! подтолкнул))
mixa_go вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF Casper-SC WPF, UWP, WinRT, XAML 3 03.03.2017 15:00
удаление файлов pufystyj Общие вопросы C/C++ 2 10.11.2010 22:57
класс Screen в WPF. Есть ли такой? [?] Не добавлять же сборку Forms в WPF Casper-SC Общие вопросы .NET 2 30.07.2010 15:10
Удаление файлов Liones Общие вопросы Delphi 9 20.05.2009 13:29
Удаление файлов Amery Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 04.05.2008 14:46