Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Чистка флэшки

Ответить
Настройки темы
C/C++ - Чистка флэшки

Аватара для ddv122

Старожил


Сообщения: 222
Благодарности: 19


Конфигурация

Профиль | Отправить PM | Цитировать


Всем привет. Мне нужно по средствам с++ builder написать программу, которая будет при подключении съемных устройств, в автоматическом режиме, удалять все файлы допустим *.mp3
Возможно ли это?

Отправлено: 05:44, 18-02-2012

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
if(FindFirst(Path +"\\"+ ExtToDel->Strings[i], faAnyFile, sear) == 0)

Отправлено: 20:42, 21-02-2012 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для ddv122

Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


ferget, все равно не работает,
Код: Выделить весь код
AnsiString Path = Edit1->Text;
Путь вида там: F://

-------
Одна голова хорошо, а двух у меня нет...


Отправлено: 20:51, 21-02-2012 | #22


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата ddv122:
Путь вида там: F:// »
путь должен быть F:\\
и тогда
Код: Выделить весь код
if(FindFirst(Path + ExtToDel->Strings[i], faAnyFile, sear) == 0)

Отправлено: 20:55, 21-02-2012 | #23


Аватара для ddv122

Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата ferget:
путь должен быть F:\\ »
просто если использовать этот код
Код: Выделить весь код
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;
Путь вида F:// в этом коде работает

Цитата ferget:
путь должен быть F:\\
»
Я и так пробовал , но не чего не удаляет

-------
Одна голова хорошо, а двух у меня нет...


Отправлено: 21:00, 21-02-2012 | #24


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


проверил

вот код

Код: Выделить весь код
  TSearchRec sear;
          TStringList* ExtToDel= new TStringList();
          AnsiString Path =   Edit1->Text;
          TIniFile* Ini = new TIniFile(ExtractFilePath( Application->ExeName ) +"spissok.ini");

          Ini->ReadSection("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);
}
delete ExtToDel;
 delete Ini;
все удаляет
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:17, 21-02-2012 | #25


Аватара для ddv122

Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


ferget, Спасибо большое!!!Все удаляет ,нужно было добавить IniFile* Ini = new TIniFile(ExtractFilePath( Application->ExeName ) +"spisok.ini");
А еще не подскажите, как сделать лог работы удаления?
к примеру в memo
21.02.2012 21:25:03 - удалено F:\autorun.inf, размер: 0 б
И ещё раз спасибо!Что бы я без вас делал.

-------
Одна голова хорошо, а двух у меня нет...


Отправлено: 21:26, 21-02-2012 | #26


Аватара для ddv122

Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата ferget:
FileNoExt = Copy(sear.Name, 1, length(sear.Name) - length(Extension)); »
[C++ Error] Unit1.cpp(30): E2268 Call to undefined function 'Copy'
Не где о этой функии не чего в интернете не нашел

-------
Одна голова хорошо, а двух у меня нет...


Отправлено: 22:21, 21-02-2012 | #27


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


ошибочка вышла

Код: Выделить весь код
FileNoExt = ChangeFileExt( sear.Name, " " );

Отправлено: 00:20, 22-02-2012 | #28


Аватара для ddv122

Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата ferget:
FileNoExt = ChangeFileExt( sear.Name, " " ); »
мы получаем полное имя файла, а нам нужно без расширения

Вот поиск папок

Код: Выделить весь код
AnsiString Path = Edit1->Text;
 TSearchRec sear;

    TSearchRec SR;
    if (FindFirst(Path +"\*.*", faDirectory, SR) == 0) {
        do {
            if (SR.Attr == faDirectory)
                memo->Lines->Add("Ïàïêà :"+ SR.Name);
        } while (FindNext(SR) == 0);
        FindClose(SR);
    }
    }

-------
Одна голова хорошо, а двух у меня нет...


Последний раз редактировалось ddv122, 22-02-2012 в 00:59.


Отправлено: 00:48, 22-02-2012 | #29


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата ddv122:
мы получаем полное имя файла, а нам нужно без расширения »
так и получаем без расширения
вот проверил
Код: Выделить весь код
     TSearchRec sear;
      AnsiString  FileNoExt;
      AnsiString Path="E:\\Books\\Test\\ForBuilder\\temp";

     if(FindFirst(Path +"\\"+ "*.txt", faAnyFile, sear) == 0)
    {
        do
        {
           FileNoExt = ChangeFileExt( sear.Name, " " );
           LogMemo->Lines->Add(FileNoExt);
        }
        while(FindNext(sear) == 0);
    }

    FindClose(sear);
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:06, 22-02-2012 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Чистка флэшки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Чистка системников 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




 
Переход