|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Чистка флэшки |
|
C/C++ - Чистка флэшки
|
Старожил Сообщения: 222 |
Профиль | Отправить PM | Цитировать Всем привет. Мне нужно по средствам с++ builder написать программу, которая будет при подключении съемных устройств, в автоматическом режиме, удалять все файлы допустим *.mp3
Возможно ли это? |
|
Отправлено: 05:44, 18-02-2012 |
ИО Капитана Очевидности Сообщения: 5383
|
Профиль | Отправить PM | Цитировать Возможно.
И даже средствами самой операционной системы - с использованием командных файлов и скриптов |
------- Отправлено: 17:44, 18-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать в командной строке у меня давно уже вышло
но при условии что батник на самой флэшке или указан путь к флэшке, а вот что бы автоматом при вставке флэшки удаляла с неё, такое вот не выходит... с WM_DEVICECHANGE нужно разобраться... |
------- Последний раз редактировалось ddv122, 19-02-2012 в 21:12. Отправлено: 17:52, 18-02-2012 | #3 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать Как я понимаю нужен обработчик событий WM_DEVICECHANGE который будет опрашивать диски с помощью функции GetLogicalDrives, функцией GetDriveType проверять тип, если DRIVE_REMOVABLE -> то съемный диск) и удалять с него файл...Но не получается, может есть варианты у вас?
Вот код Но результат в ComboBox1 и я не знаю как от туда вытащить имя флэшки и применить его в system() |
Отправлено: 23:50, 19-02-2012 | #4 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 01:05, 20-02-2012 | #5 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать А еще не подскажите как реализовать удаление папок с файла *.txt(там их список) или с memo
|
------- Отправлено: 15:31, 20-02-2012 | #6 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ddv122:
|
|
------- Отправлено: 15:50, 20-02-2012 | #7 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:02, 20-02-2012 | #8 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать Вот что я хотел
{ char s[100]; strcpy(s, Edit1->Text.c_str()); AnsiString DirPath = s, foldername; TStringList* ToDel = new TStringList(); ToDel->LoadFromFile("Spisok.txt"); int Count= ToDel ->Count; for (int i = 0; i < Count; i++) if (ToDel) { AnsiString DirName= ToDel->Strings[i]; RemoveDir(s+DirName); AnsiString FileName= ToDel->Strings[i]; DeleteFile(s+FileName); } } Удалять *.exe файл, если есть одноименная скрытая папка |
Последний раз редактировалось ddv122, 20-02-2012 в 23:23. Отправлено: 16:55, 20-02-2012 | #9 |
ИО Капитана Очевидности Сообщения: 5383
|
Профиль | Отправить PM | Цитировать Цитата ddv122:
Если внезапно на флешке окажется файл с именем длиннее ста символов, ваша программа будет выдавать очень интересные и совершенно непредсказуемые ошибки. Особенно непонятно, зачем вы используете массив char, периодически чередуя его с объектами AnsiString? Цитата ddv122:
{ AnsiString DirPath = Edit1->Text; // И без всяких символьных извращений TStringList* ToDel = new TStringList(); ToDel->LoadFromFile("Spisok.txt"); AnsiString ObjectName; // Если порядок цикла не важен, проще задавать его от максимума к нулю: // сравнение значения с нулём выполняется быстрее, нежели сравнение двух значений, // да и переменную лишнюю создавать не нужно // Запомните: чем проще программа, тем меньше в ней ошибок :) for (int i = ToDel ->Count-1; i >= 0; i--) { ObjectName = DirPath+ToDel->Strings[i]; if (...) //проверка, есть ли каталог ObjectName - увы, имя функции не помню RemoveDir (ObjectName); elseif (...) // проверка, есть ли файл ObjectName - увы, имя функции не помню DeleteFile (ObjectName); } delete ToDel; // Не забываем про удаление объектов, созданных командой new |
||
------- Отправлено: 03:07, 21-02-2012 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Чистка системников | stranges | Прочее железо | 22 | 14-11-2011 17:01 | |
Разное - Чистка ОС XP | inline | Microsoft Windows 2000/XP | 4 | 06-05-2011 07:11 | |
Принтер - Чистка принтера | ReAL | Прочее железо | 10 | 25-03-2011 15:31 | |
Чистка линз | crowlik | Оптические приводы | 18 | 21-04-2009 11:23 | |
Чистка рееестра | bona | Программное обеспечение Windows | 6 | 17-02-2008 05:57 |
|