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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
3-6420
PONTIY
2003-03-17 07:22
2003.04.03
Как узнать индекс (колонки) нажатой шапки в TRxDBGrid?


14-6681
Дмитрий К.К.
2003-03-18 06:17
2003.04.03
Именинники 18 марта


7-6804
Esc
2003-02-09 13:32
2003.04.03
Свой сервис win2k


6-6635
bavc
2003-02-11 07:27
2003.04.03
Передача данных HTML


1-6513
Dimitry
2003-03-24 20:35
2003.04.03
file of record