Имя пользователя:
Пароль:
 

Название темы: Чистка флэшки
Показать сообщение отдельно

ИО Капитана Очевидности


Contributor


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

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


Цитата ddv122:
char s[100];
strcpy(s, Edit1->Text.c_str());
AnsiString DirPath = s, foldername; »
Если рассудок и жизнь дороги вам, никогда не используйте в своей программе char
Если внезапно на флешке окажется файл с именем длиннее ста символов, ваша программа будет выдавать очень интересные и совершенно непредсказуемые ошибки.

Особенно непонятно, зачем вы используете массив char, периодически чередуя его с объектами AnsiString?

Цитата ddv122:
for (int i = 0; i < Count; i++)
if (ToDel)
{
...
}
»
Зачем вы на каждом участке цикла проверяете "истинность" указателя ToDel? Боитесь, что кто-то обнулит его?

Код: Выделить весь код
{
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

Название темы: Чистка флэшки