|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Чистка флэшки |
|
|
C/C++ - Чистка флэшки
|
|
Старожил Сообщения: 222 |
Всем привет. Мне нужно по средствам с++ builder написать программу, которая будет при подключении съемных устройств, в автоматическом режиме, удалять все файлы допустим *.mp3
Возможно ли это? |
|
|
Отправлено: 05:44, 18-02-2012 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Цитата ddv122:
TSearchRec sear;
AnsiString Path;
AnsiString Extension;
AnsiString FileNoExt;
if(FindFirst(Path + "*.exe", faAnyFile, sear) == 0)
{
do
{
Extension = ExtractFileExt(sear.Name);
FileNoExt = Copy(sear.Name, 1, length(sear.Name) - length(Extension));
....................................
}
while(FindNext(sear) == 0);
}
FindClose(sear);
сравниваете и удаляете не нужные как-то так |
|
|
Последний раз редактировалось ferget, 21-02-2012 в 04:57. Отправлено: 04:45, 21-02-2012 | #11 |
|
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать El Scorpio, спасибо
Все разобрался {
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 (DirectoryExists)
RemoveDir (ObjectName);
(FileExists);
DeleteFile (ObjectName);
}
delete ToDel;
}
|
|
Последний раз редактировалось ddv122, 21-02-2012 в 14:40. Отправлено: 13:59, 21-02-2012 | #12 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 16:32, 21-02-2012 | #13 |
|
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать ferget, файлы находит но не удаляет
|
|
------- Отправлено: 17:01, 21-02-2012 | #14 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 17:10, 21-02-2012 | #15 |
|
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать ferget, спасибо большое, не подскажите
что бы Расширение указываем в коде программы, а возможно как сдесь Цитата ddv122:
и можно было бы удалять не 1 расширение *.lnk а не сколько допустим ещё *.mp3 и *.wav |
|
|
Отправлено: 17:23, 21-02-2012 | #16 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать вам стоит подумать об использовании ini-файлов
пример ini [directory] //тут список папок для удаления [files] //тут список файлов для удаления [ext] //тут список расширений для удаления *.mp3 *.lnk *.wav TIniFile *Ini = new TIniFile(путь к файлу .ini");
TSearchRec sear;
TStringList* ExtToDel= new TStringList();
ini->ReadSectionValues("ext", ExtToDel);
for (int i = ExtToDel ->Count-1; i >= 0; i--)
{
if(FindFirst(Path + ExtToDel->Strings[i], faAnyFile, sear) == 0)
{
do
{
DeleteFile(Path+"\\"+sear.Name);
}
while(FindNext(sear) == 0);
}
FindClose(sear);
}
|
|
Отправлено: 17:46, 21-02-2012 | #17 |
|
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать Не удаляет почему то ярлыки
{
AnsiString Path = Edit1->Text;
TIniFile *Ini = new TIniFile("spisok.ini");
TSearchRec sear;
TStringList* ExtToDel= new TStringList();
Ini->ReadSectionValues("ext", ExtToDel);
for (int i = ExtToDel ->Count-1; i >= 0; i--)
{
if(FindFirst(Path + ExtToDel->Strings[i], faAnyFile, sear) == 0)
{
do
{
DeleteFile(Path+"\\"+sear.Name);
}
while(FindNext(sear) == 0);
}
FindClose(sear);
}
}
|
|
Отправлено: 18:08, 21-02-2012 | #18 |
|
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 20:06, 21-02-2012 | #19 |
|
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать ferget, все ровно не работает
{
AnsiString Path = Edit1->Text;
TIniFile *Ini = new TIniFile("spisok.ini");
TSearchRec sear;
TStringList* ExtToDel= new TStringList();
Ini->ReadSectionValues("ext", ExtToDel);
for (int i = ExtToDel ->Count-1; i >= 0; i--)
{
if(FindFirst(Path + ExtToDel->Strings[i], faAnyFile, sear) == 0)
{
do
{
DeleteFile(Path+"\\"+sear.Name);
}
while(FindNext(sear) == 0);
}
FindClose(sear);
}
}
|
|
Отправлено: 20:25, 21-02-2012 | #20 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Разное - Чистка системников | 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 | |
|