Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

Гуру подскажите плиз, а как средствами KOL удалить папку?   Найти похожие ветки 

 
sunwise   (2007-07-27 06:28) [0]

Подскажите пожалуйста. В функциях по работе с файлами и каталогами не нашел. Или делать средствами API?


 
sunwise   (2007-07-27 06:50) [1]

Как всегда. Нашел. :)
RemoveDirectory("c:\test\");
Удаление каталога, если он пустой.
Функция описана в файле kol_unicode.inc.

Все ли верно? Тогда еще вопросик. А как удалить не пустой каталог?


 
sunwise   (2007-07-27 06:52) [2]

Почти не отличается от RemoveDir. ;)


 
MTsv DN ©   (2007-07-27 14:55) [3]

> Тогда еще вопросик. А как удалить не пустой каталог?
procedure Shell( Parent: HWND;
                ShellFun : cardinal;
                ShellFlag : word ;
                sFrom, sTo : KOLString);
var
FileOp : {$IFDEF UNICODE_CTRLS}TSHFileOpStructW{$ELSE}TSHFileOpStructA{$ENDIF};
s1, s2 : KOLString;
begin
 s1 := ExcludeTrailingPathDelimiter(sFrom);
 s1 := s1 + #0#0;
 s2 := ExcludeTrailingPathDelimiter(sTo);
 s2 := s2 + #0#0;

 FillChar(FileOp, SizeOf(FileOp), #0);
 with FileOp do
 begin
   Wnd := Parent;
   wFunc := ShellFun;
   pFrom := PKOLChar(s1);
   pTo := PKOLChar(s2);
   fFlags := fFlags or FOF_SILENT;
   if ShellFlag <> 0 then
    fFlags := fFlags or ShellFlag;
 end;

 {$IFDEF UNICODE_CTRLS}SHFileOperationW{$ELSE}SHFileOperationA{$ENDIF}(FileOp);
end;

procedure ShellDelete(Parent : HWND; Path : KOLString; Undo, Consent : boolean);
var
f : word;
begin
 f := FOF_NOERRORUI; // отключаем вывод сообщения об ошибке
 if not consent then f := f or FOF_NOCONFIRMATION;
 if Undo then  f := f and (not FOF_ALLOWUNDO);
 Shell(Parent, FO_DELETE, f, Path, "");
end;


 
sunwise   (2007-07-27 19:26) [4]

Спасибо. Боюсь осилить мне это будет не просто... хотя по сути - код только вставить. Разобраться еще надо. Спасиб огромное. Я изредка делаю небольшие программки, по мере надобности, особых знаний по программированию не имею. Да и делал все на билдере. Но вот понадобилось небольшое по размеру приложение сделать, которое должно работать только с флешки. Хотя и размер на самом деле не критичен, но небольшой вес будет выглядеть приятней. :)
У меня есть еще вопросик. Но это отдельная тема. Вопрос следующий.
Как можно передать фукции например WinExec нужные параметры, которые определяются в коде динамически, то есть меняются... Например для архиватора передать строку... или например для xcopy передать каталог, куда копировать файлы.


 
sunwise   (2007-07-27 19:40) [5]

2MTsv DN ©
С другой стороны... каталог удаляемый нам известен. Если он не содержит множество поддиректорий, то все просто - получаем список файлов, удаляем их, удаляем каталог. Если есть поддиректории то уже нужен обход.
Насколько это будет решение оправдано? Я попробую сделать и так и по приведенному коду.



Страницы: 1 вся ветка

Текущий архив: 2008.03.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
15-1202499449
Palladin
2008-02-08 22:37
2008.03.16
Хозяйкам на заметку


2-1203123909
Artem
2008-02-16 04:05
2008.03.16
Изменение текста в WebBrowser без сохранения на диск


2-1203427849
Pavelkq
2008-02-19 16:30
2008.03.16
Создан ли объект?


2-1202950288
Lampochka
2008-02-14 03:51
2008.03.16
Поиск файла в NTFS


15-1202376723
Iam
2008-02-07 12:32
2008.03.16
chm2doc