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

Вниз

Как программно удалить папку?   Найти похожие ветки 

 
Folder   (2004-03-24 08:22) [0]

Вопрос: имеется папка, к примеру "с:\Папка", как программно, при нажатии на кнопку, удалить эту папку? Может должно использоваться что-то типа DeleteFolder? Удалить файл-это без проблем, а вот с папкой....Заранее благодарю.


 
Вованчик ©   (2004-03-24 08:31) [1]

RemoveDir

Deletes an existing empty directory.

Unit

SysUtils

Category

file management routines

function RemoveDir(const Dir: string): Boolean;

Description

Call RemoveDir to remove the directory specified by the Dir parameter. The return value is True if a new directory was successfully deleted, False if an error occurred. The directory must be empty before it can be successfully deleted.


 
Романов Р.В. ©   (2004-03-24 08:34) [2]

SHFileOperation


 
Anatoly Podgoretsky ©   (2004-03-24 08:47) [3]

Для всех файловых операция, за исключением особых случаев, использовать всегда SHFileOperation и принять за правило.


 
Folder   (2004-03-24 09:49) [4]

RemoveDir работает если директория пустая. Это не подходит. У меня она не пустая будет.


 
Folder   (2004-03-24 10:32) [5]

Есть еще варианты?


 
Романов Р.В. ©   (2004-03-24 10:34) [6]

SHFileOperation


 
Folder   (2004-03-25 08:11) [7]

С помощью SHFileOperation вроде только с файлами можно работать.
Мне надо удалить НЕ ПУСТУЮ папку.


 
Романов Р.В. ©   (2004-03-25 08:22) [8]

SHFileOperation может удалить непустую папку со всеми подкаталогами


 
Folder   (2004-03-25 09:26) [9]

Романов Р.В. если не трудно приведи пример удаления....


 
Batoon ©   (2004-03-25 09:35) [10]

УДАЛЯЕТ НАЧИСТО
procedure Erase(Owner: Integer;  WichFiles: String);
var
Struct : TSHFileOpStructA;
begin
While pos(";",WichFiles)>0 do
WichFiles[pos(";",WichFiles)]:=#0;
WichFiles:=WichFiles+#0#0;
with Struct do
begin
wnd        :=Owner;
wFunc      :=FO_Delete;
pFrom      :=PChar(WichFiles);
pTo        :=nil;
fFlags:=FOF_NOCONFIRMATION;
fFlags:=fflags or 0 ;
fflags:=fflags or FOF_SIMPLEPROGRESS;
hNameMappings:=nil;
lpszProgressTitle:="ha-ha-ha!!!";
end;
SHFileOperationA(Struct);
end;

OWNER я ставил на 1.
Этот код взял из Kuliba и изменил только в нем кое-что.


 
Folder   (2004-03-25 10:03) [11]

Batoon - работает но громоздкий.....видно нет простого решения для такой простой задачи...


 
MetalFan ©   (2004-03-25 12:25) [12]

function ClearDir(const Path: string; Delete: Boolean): Boolean;
const
{$IFDEF WIN32}
 FileNotFound = 18;
{$ELSE}
 FileNotFound = -18;
{$ENDIF}
var
 FileInfo: TSearchRec;
 DosCode: Integer;
begin
 Result := DirExists(Path);
 if not Result then Exit;
 DosCode := FindFirst(NormalDir(Path) + "*.*", faAnyFile, FileInfo);
 try
   while DosCode = 0 do begin
     if (FileInfo.Name[1] <> ".") and (FileInfo.Attr <> faVolumeID) then
     begin
       if (FileInfo.Attr and faDirectory = faDirectory) then
         Result := ClearDir(NormalDir(Path) + FileInfo.Name, Delete) and Result
       else if (FileInfo.Attr and faVolumeID <> faVolumeID) then begin
         if (FileInfo.Attr and faReadOnly = faReadOnly) then
           FileSetAttr(NormalDir(Path) + FileInfo.Name, faArchive);
         Result := DeleteFile(NormalDir(Path) + FileInfo.Name) and Result;
       end;
     end;
     DosCode := FindNext(FileInfo);
   end;
 finally
   FindClose(FileInfo);
 end;
 if Delete and Result and (DosCode = FileNotFound) and
   not ((Length(Path) = 2) and (Path[2] = ":")) then
 begin
   RmDir(Path);
   Result := (IOResult = 0) and Result;
 end;
end;

взято из RXовской библиотеки



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

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

Наверх





Память: 0.48 MB
Время: 0.067 c
4-1075989829
UNIVERSAL
2004-02-05 17:03
2004.04.11
Полупрозрачное окно


7-1075907613
Falendysh
2004-02-04 18:13
2004.04.11
Работа с диском


3-1078931874
Anarki
2004-03-10 18:17
2004.04.11
ADOQuery - проблемы


1-1080300539
Ev1972
2004-03-26 14:28
2004.04.11
Как отследить клик за пределами модального окна?


9-1071030267
Kair
2003-12-10 07:24
2004.04.11
Скорость вращения





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