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

Вниз

Удалить все файлы из каталога   Найти похожие ветки 

 
ruslan_as   (2002-04-19 11:12) [0]

Помогите кодом!!! Вопрос обсуждался, но конкретного кода не нашел.Нужно удалить все файлы из каталога C:\Test. Пробовал через FindFirst и DeleteFile воспринимает любой шаблон типа *.tmp но не воспринимает *.* , а какие файлы с каким расширением у меня могут появиться в этом каталоге я не знаю.


 
Alx2   (2002-04-19 11:26) [1]

Можно вызвать из программы команду del c:\test\*.*


 
ruslan_as   (2002-04-19 11:31) [2]

Подходит! Только как ее вызвать. Если можно подробнее...


 
panov   (2002-04-19 11:32) [3]

http://delphi.mastak.ru/articles/advice/top.html#q12


 
Alx2   (2002-04-19 11:34) [4]

В Win2k:
WinExec("cmd.exe /c del /q /f c:\test\*.*",0);
95/98:
WinExec("command.com /c del /q /f c:\test\*.*",0);


 
ruslan_as   (2002-04-19 11:43) [5]

Подходит! Только как ее вызвать. Если можно подробнее...


 
Alx2   (2002-04-19 11:58) [6]

Дык написал же:)
Alx2 © (19.04.02 11:34)


 
Miwa   (2002-04-19 12:00) [7]

Вообще-то, я когдато спрашивал что-то похожее, и тогда результат обсуждения ветки был выложен в факе. Только не через winexec, а через FindFirst, FindNext.


 
Miwa   (2002-04-19 12:01) [8]

Вообще-то, я когдато спрашивал что-то похожее, и тогда результат обсуждения ветки был выложен в факе. Только не через winexec, а через FindFirst, FindNext.


 
Alx2   (2002-04-19 12:10) [9]

panov уже дал линк на фак. Там все готовое.


 
ruslan_as   (2002-04-19 12:37) [10]

Спасибо за линк - класс. Тут я тоже поискал и нашел такой код:

FUNCTION DELETEFILEWITHUNDO( SFILENAME : STRING ) : BOOLEAN;
VAR FOS : TSHFILEOPSTRUCT;
BEGIN
SFILENAME:= SFILENAME+#0;
FILLCHAR( FOS, SIZEOF( FOS ), 0 );
WITH FOS DO BEGIN
WFUNC := FO_DELETE;
PFROM := PCHAR( SFILENAME );
FFLAGS := FOF_ALLOWUNDO OR FOF_NOCONFIRMATION OR FOF_SILENT;
END;
RESULT := ( 0 = SHFILEOPERATION( FOS ) );
END;

Может кому пригодиться...


 
Nikolay M.   (2002-04-19 14:40) [11]

А почему ClearDir из RX не подходит? Если RX нет, вот код (Delete - удалять ли сам каталог):

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;



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
1-2550
mnemonic
2002-04-18 17:33
2002.05.02
редактор компоненты


4-2727
JAndrey
2002-02-28 07:11
2002.05.02
Как запустить и остановить Скрин Сервер?


1-2539
ymin
2002-04-18 17:10
2002.05.02
form1.print


1-2529
Катерина
2002-04-21 12:56
2002.05.02
Размеры в Chart


3-2459
php@bigmir.net
2002-04-10 23:10
2002.05.02
Поиск в таблице





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