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

Вниз

Полное удаление каталога   Найти похожие ветки 

 
me2   (2003-03-21 11:31) [0]

Народ, подскажите как полностью удалить каталог, а не помещать его в корзину?


 
stone   (2003-03-21 11:35) [1]

Shift+Del


 
me2   (2003-03-21 11:40) [2]

Нет, я имею ввиду программно


 
AlexKr   (2003-03-21 13:19) [3]

SHFileOperation и <F1>


 
me2   (2003-03-21 13:28) [4]

Что, никто не знает?. Народ, проснитесь!!!


 
Clickmaker   (2003-03-21 13:40) [5]

AlexKr (21.03.03 13:19)
SHFileOperation и <F1>


Народ проснулся. А вот ты, похоже, еще нет :-)


 
Leran2002   (2003-03-21 13:48) [6]

Во когдато написал, мож подойдет:

{var
List:TStringList;}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure MyClearDir(MyPath:string;DelFolder:boolean);
var
SR:TSearchRec;
begin
MyPath:=Trim(MyPath);
if MyPath="" then exit;

if not DirectoryExists(MyPath) then exit;

if MyPath[Length(MyPath)]<>"\" then MyPath:=MyPath+"\";

if FindFirst(MyPath+"*.*",faAnyFile,SR)=0 then
repeat
if (SR.Name<>".")and(SR.Name<>"..") then
if DelFolder and((SR.Attr and faDirectory)<>0) then begin
MyClearDir(MyPath+SR.Name,true);
// List.Add("Папка удалена: "+MyPath+SR.Name);
RemoveDir(MyPath+SR.Name);
end
else if (SR.Attr and faDirectory)=0 then
// List.Add("Файл удален: "+MyPath+SR.Name);
sysutils.DeleteFile(MyPath+SR.Name);
until FindNext(SR)<>0;
sysutils.FindClose(SR);
end;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Все что закоментарено - для проверки правильности работы...


 
andrey_pst   (2003-03-21 13:49) [7]

procedure TForm1.DeleteDirs(Dir : string);
var
sr : TSearchRec;
begin
if FindFirst(Dir + "\*.*", faAnyFile, sr) = 0 then
begin
repeat
if (sr.Attr and faDirectory) <> faDirectory then
begin
if (sr.Attr and faArchive) = faArchive then
FileSetAttr(Dir + "\" + sr.Name, faArchive);
DeleteFile(Dir + "\" + sr.Name);
end
else
if (sr.Name <> "..") and (sr.Name <> ".") then
DeleteDirs(Dir + "\" + sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
RemoveDir(ExtractFileDir(Dir + "\"));
end;
end;



 
Романов Р.В.   (2003-03-21 14:02) [8]

или досовская команда rd через shellexecute


 
me2   (2003-03-21 16:20) [9]

У меня получилось так
procedure TMainForm.DeleteDirectoryTree(AHandle: THandle;
AFromDir: string);
var
SHFileOPStruct: TSHFileOPStruct;
begin
with SHFileOPStruct do
begin
Wnd := AHandle;
wFunc := FO_DELETE;
pFrom := PChar(AFromDir);
pTo := nil;
fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION or FOF_SIMPLEPROGRESS;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
SHFileOperation(ShFileOpStruct);
end;


 
Intell   (2003-03-23 17:58) [10]

В примере стираются все файлы в каталоге и сам каталог. (Пример заподлянки, удаляется
каталог "Games" на диске C:\)



procedure TForm1.Button1Click(Sender: TObject);
var
DirInfo: TSearchRec;
r: integer;
begin
r := FindFirst("C:\Games\*.*", FaAnyfile, DirInfo);
while r = 0 do
begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
(DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
if DeleteFile(pChar("C:\Games\" + DirInfo.Name))= false then
ShowMessage("Unable to delete: C:\Games\"+DirInfo.Name);
r := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);
if RemoveDirectory("C:\Games\") = false then
ShowMessage("Unable to delete directory: C:\Games\");
end;

sergein@nojabrsk.ru



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

Форум: "Основная";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.03 c
14-6765
xtreme
2003-03-14 10:16
2003.04.03
Запись на CD/DVD (R, RW, +RW, -RW) где стандарты почитать?


1-6609
Beastie
2003-03-14 11:44
2003.04.03
Как вывести на печать содержимое TStringGrid


3-6370
alexts
2003-03-14 15:02
2003.04.03
Excel как набор данных...


1-6606
Guru
2003-03-22 13:10
2003.04.03
Клиент/серверное приложение с авторизацией


3-6329
Beka
2003-03-12 19:56
2003.04.03
Oracle Architecture





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский