Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пмагите найти ошибку! С removedir [D6, Win95/98, Win2k]


Страницы:   1 2

hooky-mars ©   (2002-06-10 20:55:00) 

Вот код:
procedure TMainForm.DelFile;
var
i,p:integer;
q:string;
begin
for i:=0 to s.Count do
begin
//Считаем процесс
p:=i+1;
p:=round((p/(s.Count+1))*100);
q:=s.Strings[i];
//Ищем по строке путь к файлу
if pos("File:",q)<>0 then
begin
Delete(q,1,5);
DeleteFile(q);
//Если нет файла удалить папку
end else
begin
RemoveDir(q);
end;
Gauge1.Progress:=p;
end;
end;

Переменная s типа TStringList. При событии формы onActivate этот лист загружается так:
S.LoadFromFile("text.txt");
Сначала проблема заключалась в том, что папка не уничтожалась пока она не очищена (что и приходится делать), а с недавних пор винда стала ругаться на user32.dll. Помагите, пожалуйста.


Song   (2002-06-13 10:57:00) [1]

А может просто ShFileOperation() и нет никаких проблем и дискуссий ?


Игорь Шевченко   (2002-06-13 10:55:00) [2]

IOResult в студию! :-)


Внук   (2002-06-13 09:32:00) [3]

>>hooky-mars © (11.06.02 17:36)
Что я могу на это сказать - чудес не бывает. Смотрите код ошибки


hooky-mars   (2002-06-11 17:36:00) [4]


> Внук © (11.06.02 17:34)
> Два варианта - либо каталог создается с "хитрыми" атрибутами,
> либо он заблокирован (Вашей же программой :))). Смотрите
> код ошибки

Ни каких атрибутов Я этой папке не даю, а програ работает в другом катологе. И как она может заблакировать данную папку?


Внук   (2002-06-11 17:34:00) [5]

Два варианта - либо каталог создается с "хитрыми" атрибутами,
либо он заблокирован (Вашей же программой :))). Смотрите код ошибки


hooky-mars   (2002-06-11 17:31:00) [6]


> Внук © (11.06.02 17:29)
> Так другие каталоги удаляются?

Другие удаляются (кроме рабочего стола), но предварительно приходиться удалять ихсодержимое


Внук   (2002-06-11 17:29:00) [7]

Так другие каталоги удаляются?


hooky-mars   (2002-06-11 17:27:00) [8]


> Внук © (11.06.02 17:23)
> А остальные каталоги удаляются?
> Проверьте его аттрибуты

Этот католог создаю я. И этот католог не пустой внём находятся файлы


Внук   (2002-06-11 17:26:00) [9]

На сообщение (11.06.02 17:24) не обращайте внимания, запарился :)


Внук   (2002-06-11 17:24:00) [10]

И потом, последний каталог непустой, он содержит подкаталоги :)))


Внук   (2002-06-11 17:23:00) [11]

А остальные каталоги удаляются?
Проверьте его аттрибуты


hooky-mars   (2002-06-11 17:09:00) [12]

Содержимое листа:
File:D:\Documents and Settings\Администратор\Рабочий стол\Graphics.lnk
File:D:\Documents and Settings\Администратор\Главное меню\Программы\Graphics2\hooky-mars\Graphics.lnk
File:D:\Documents and Settings\Администратор\Главное меню\Программы\Graphics2\hooky-mars\Graphics Help.lnk
D:\Documents and Settings\Администратор\Главное меню\Программы\Graphics2\hooky-mars
D:\Documents and Settings\Администратор\Главное меню\Программы\Graphics2
D:\Program Files\Graphics\

Вот эту папку (D:\Program Files\Graphics\) и неполучается удалить.


Внук   (2002-06-11 14:19:00) [13]

Хотелось бы увидеть пример строки из TStringList, а также где располагаются удаляемые файлы (относительно текущего каталога программы)


hooky-mars   (2002-06-11 13:55:00) [14]


> Kaban (11.06.02 13:32)
> и еще не "пмагите", а помогите

Ачиплятки бывают разные


hooky-mars   (2002-06-11 13:53:00) [15]


> Kaban (11.06.02 13:52)
> а кто ж знал,
> какая ошибка-то?

А теперь когда знаете, почему?


Kaban   (2002-06-11 13:52:00) [16]

if pos("File:",q)<>0 then
begin
Delete(q,1,5);
DeleteFile(q);
//Если нет файла удалить папку
end else

а это что-такое?
а если файлов несколько?


Kaban   (2002-06-11 13:52:00) [17]

а кто ж знал,
какая ошибка-то?


hooky-mars   (2002-06-11 13:48:00) [18]


> Внук © (11.06.02 13:26)
> Во-первых
> for i:=0 to s.Count-1 do
> Запомните это раз и навсегда :)
>
>
>
> Kaban (11.06.02 13:27)
> for i:=0 to s.Count - 1 do
> По крайней мере в этом точно ошибка

А почему RemoveDir(q); непашет?
Папка то не удаляется! А она должна удалитсь до ошибки:
for i:=0 to s.Count do


Kaban   (2002-06-11 13:32:00) [19]

и еще не "пмагите", а помогите


Kaban   (2002-06-11 13:27:00) [20]

for i:=0 to s.Count - 1 do
По крайней мере в этом точно ошибка


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо