Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для SarMat4Life
10 / 10 / 3
Регистрация: 29.11.2012
Сообщений: 227

Удаление файлов отмеченных в чекбоксе

20.05.2017, 19:16. Показов 2528. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть чекбокс, в нем списком выводятся файлы(полный путь к ним)
нужно чтобы была возможность выбрать файл(галочкой), нажать на кнопку и физически удалить его
перечитал кучу тем, нашел только как удалить выбранный элемент из списка самого чекбокса(физически он остается на компе)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2017, 19:16
Ответы с готовыми решениями:

Удаление файлов отмеченных в checkedListBox'e с ПК
Здравствуйте. Не так давно ради интереса я решил написать программу на C#, которая будет находить в указанной папке все файлы, выстраивать...

Удаление отмеченных записей из раздельно формы
Всем привет помогите пожалуйста безграмотному! Есть таблица Товар с полями (Артикул, название, Цена, Товар, Удалить) Поле удалить...

Удаление отмеченных строк из грида и .sdf базы
РРРРРррребятушки)))))в чем может быть дело - код не работает, не удаляет ни из бд ни из грида int deleted = 0; for...

10
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
20.05.2017, 20:38
Цитата Сообщение от SarMat4Life Посмотреть сообщение
перечитал кучу тем
первая же ссылка в гугле по запросу "удаление файла c#": Метод File.Delete (String)
0
 Аватар для SarMat4Life
10 / 10 / 3
Регистрация: 29.11.2012
Сообщений: 227
21.05.2017, 14:47  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
"удаление файла c#": Метод File.Delete (String)
это то я знаю, вопрос в другом, как к чекбоксу прикрутить
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
21.05.2017, 15:00
Цитата Сообщение от SarMat4Life Посмотреть сообщение
как к чекбоксу прикрутить
Вы же сказали, что знаете как удалить элемент из самого чекбокса... Что мешает в тот же код добавить еще одну строку кода для удаления файла?
Покажите каким образом Вы удаляете элемент.
0
 Аватар для SarMat4Life
10 / 10 / 3
Регистрация: 29.11.2012
Сообщений: 227
21.05.2017, 15:04  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
Покажите каким образом Вы удаляете элемент.
вот кусочек кода, был найден на этом же форуме
C#
1
2
3
4
5
6
7
8
9
10
        private void button3_Click(object sender, EventArgs e)  
        {
            for (int i = checkedListBox1.Items.Count - 1; i >= 0; i--)
            {
                if (checkedListBox1.GetItemChecked(i))
                    checkedListBox1.Items.RemoveAt(i);
                //    File.Delete(checkedListBox1.SelectedItem.ToString());   так не работает
            }
 
        }
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
21.05.2017, 15:29
Цитата Сообщение от SarMat4Life Посмотреть сообщение
// File.Delete(checkedListBox1.SelectedItem.ToString()); так не работает
Вообще то должно работать! Правда, совершенно не так как Вам нужно. С чего Вы в цикле перебираете все элементы и находите с галочками, а при удалении файла используете совершенно другую конструкцию и пытаетесь удалить выделенный элемент? Логика не подсказывает, что обращаться к элементам для удаления нужно так же по индексу?
Кроме того, Вы пытаетесь удалить файл уже после того как удален элемент списка, в котором содержится имя файла! Может все таки наоборот нужно?
Ну и еще почитайте как нужно оформлять условные операторы!
0
 Аватар для SarMat4Life
10 / 10 / 3
Регистрация: 29.11.2012
Сообщений: 227
21.05.2017, 15:39  [ТС]
Shogun31337,
переделал)
C#
1
2
3
4
5
6
7
8
9
10
        private void button3_Click(object sender, EventArgs e)  
        {
     //       for (int i = checkedListBox1.Items.Count - 1; i >= 0; i--)
     //       {
     //           if (checkedListBox1.GetItemChecked(i))
     //               checkedListBox1.Items.RemoveAt(i);       
     //       }
            File.Delete(checkedListBox1.SelectedItem.ToString());
            checkedListBox1.Items.Remove(checkedListBox1.SelectedItem);
        }
теперь все работает)

Цитата Сообщение от Shogun31337 Посмотреть сообщение
Кроме того, Вы пытаетесь удалить файл уже после того как удален элемент списка, в котором содержится имя файла! Может все таки наоборот нужно?
вот за это отдельное спасибо) не сообразил)
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
21.05.2017, 15:45
Лучший ответ Сообщение было отмечено SarMat4Life как решение

Решение

Ну и конечно же подразумевается, что в чекбоксе должны находиться пути к файлам, а не просто их имена! Тут еще стоит отметить, что имя файла тоже является относительным путем, но при этом этот файл должен находиться в одной директории с исполняемым файлом!!!

Добавлено через 1 минуту
Цитата Сообщение от SarMat4Life Посмотреть сообщение
теперь все работает)
Работает, только постановка галочки на удаление не влияет! Вы удаляете выделенный чекбокс, а выделен он может быть даже если галочка не установлена! Кроме того, таким образом можно удалить только 1 файл, вне зависимости от того на скольких чекбоксах стоят галочки.

Добавлено через 5 минут
Вот такой вариант будет, на мой взгляд, более корректным.
C#
1
2
3
4
5
6
7
8
for (int i = checkedListBox1.Items.Count - 1; i >= 0; i--)
{
    if (checkedListBox1.GetItemChecked(i))
    {
        File.Delete(checkedListBox1.Items[i].ToString());
        checkedListBox1.Items.RemoveAt(i);
    }
}
1
 Аватар для SarMat4Life
10 / 10 / 3
Регистрация: 29.11.2012
Сообщений: 227
21.05.2017, 16:01  [ТС]
Shogun31337,
а я и не заметил, что удаляется по одному) спасибо))
с вашего позволения, возьму код себе))
0
0 / 0 / 0
Регистрация: 23.04.2018
Сообщений: 26
05.05.2018, 05:11
Shogun31337, а что сделать если выдаёт исключение "Процесс не может получить доступ к файлу "312312.jpg", так как этот файл используется другим процессом."
Мне кажется это из за того что файл открыт в PictureBox, как можно исправить данное исключение?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void Button3_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show(text: $"Вы точно хотите удалить {checkedListBox1.SelectedItem.ToString()}?", caption: "Info", buttons: MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    for (int i = checkedListBox1.Items.Count - 1; i >= 0; i--)
                    {
                        if (checkedListBox1.GetItemChecked(i))
                        {
                            File.Delete(checkedListBox1.Items[i].ToString());
                            checkedListBox1.Items.RemoveAt(i);
                        }
                    }
                }
                
            }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string itemValue = checkedListBox1.Items[checkedListBox1.SelectedIndex].ToString();
            if (checkedListBox1.SelectedIndex >= 0)
            {
                try
                {
                    if (File.Exists(itemValue))
                    {
                        pictureBoxImagePreview.Image = Image.FromFile(itemValue);
                    }
                }
                catch (System.OutOfMemoryException)
                {
                    
                }
            }
        }
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
05.05.2018, 09:19
Цитата Сообщение от Sarax Посмотреть сообщение
Shogun31337, а что сделать если выдаёт исключение "Процесс не может получить доступ к файлу "312312.jpg", так как этот файл используется другим процессом."
Мне кажется это из за того что файл открыт в PictureBox, как можно исправить данное исключение?
Ну, во-первых, если Вы удаляете файл, то было бы логично, если бы он закрывался и в пикчербоксе... Делать это нужно, разумеется, перед тем как удалять файл, чтобы не было конфликта доступа.
А, во-вторых, если уж хочется, чтобы файл после удаления оставался открытым в пикчербоксе, то нужно открывать его таким образом, чтобы он не блокировался. Например, так:
C#
1
2
3
4
5
6
Bitmap bmp;
using (var stream = new FileStream("312312.jpg", FileMode.Open))
{
    bmp = new Bitmap(stream);
}
pictureBox1.Image = bmp;
Теперь файл после открытия в PictureBox будет "отпущен" и его можно будет удалить (разумеется, при условии, что он не открыт где то еще). При этом в PictureBox он будет продолжать отображаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2018, 09:19
Помогаю со студенческими работами здесь

Удаление отмеченных галочкой (checkbox) статей как в Joomla
Доброго времени суток. Помогите пожалуйста. Делаю небольшую админ панель, но столкнулся с проблемой. Хочу сделать удаление отмеченных...

Не могу осуществить удаление из массива уже не отмеченных строк в ListView
Добрый вечер. Делаю ListView с чекбоксами и кнопкой, после нажатия на которую в массив записываются все отмеченные строки. Сделал...

Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов...
Уважаемые хакеры!Прошу вашей помощи!Я в СИ не особо шарю.((( А на днях уже сдавать.Очень рассчитываю на любую вашу помощь. Вот задача. ...

Как сделать закачку и удаление файлов, создание и удаление каталогов?
Как сделать закачку и удаление файлов, создание и удаление каталогов?

Как закрыть доступ на удаление файлов и автоматизировать их удаление через определенный промежуток времени?
Добрый день, жители форума. Есть следующая проблема: Имеется компьютер с виндовс хр, на один из дисков пишется видео с камер видео...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru