Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Вниз

Гуру подскажите плиз, а как средствами 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 вся ветка

Форум: "KOL";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
2-1203094046
Zurn
2008-02-15 19:47
2008.03.16
Обработка интернет страниц


11-1185293436
Dy1
2007-07-24 20:10
2008.03.16
колонки ListView


2-1203379580
fluxion
2008-02-19 03:06
2008.03.16
SQL запрос. Нужна помощь.


2-1203330143
AlexAA
2008-02-18 13:22
2008.03.16
Границы Memo


2-1203329126
WebSQLNeederr
2008-02-18 13:05
2008.03.16
Перемешать рендомно строки TStringList





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский