Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите совместить два исходника в один. Прога, работ-щая как WipeInfo 
:(
    Опции темы
Lizard
  Дата 25.10.2002, 05:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Прогу, удаляющую каталоги со всем содержимым надо объединить с прогой, удаляющей файлы по принципу WipeInfo. Т.е. сделать прогу,
удаляющую каталог со всем содержимым по принципу нортоновского wipeinfo.

------1-я прога { Удалить каталог со всем содержимым }--------

function DeleteDir(Dir  : string)  : boolean;
Var
Found  : integer;
SearchRec : TSearchRec;
begin  result:=false;
if IOResult<>0 then ;
ChDir(Dir);  
if IOResult<>0 then
begin  
ShowMessage('Не могу войти в каталог: '+Dir);
exit;  
end;
Found := FindFirst('*.*', faAnyFile, SearchRec);
while Found = 0 do  
begin  
if (SearchRec.Name<>'.')and(SearchRec.Name<>'..') then  
if (SearchRec.Attr and faDirectory)<>0 then
begin    
if not DeleteDir(SearchRec.Name) then exit;  
end
else  
if not DeleteFile(SearchRec.Name) then
begin    
ShowMessage('Не могу удалить файл: '+SearchRec.Name);
exit;    
end;
Found := FindNext(SearchRec);
end;  
FindClose(SearchRec);
ChDir('..');
RmDir(Dir);
result:=IOResult=0;
end;


---------2-ая прога WipeInfo -------------------------

procedure WipeFile(FileName: string);
var
buffer: array [0..4095] of Byte;
max, n: LongInt;
i: Integer;
fs: TFileStream;

procedure RandomizeBuffer;
var
i: Integer;
begin
for i := Low(buffer) to High(buffer) do
buffer[i] := Random(256);
end;
begin
fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
try
for i := 1 to 3 do
begin
RandomizeBuffer;
max     := fs.Size;
fs.Position := 0;
while max > 0 do
begin
if max=SizeOf(buffer) then
 n := SizeOf(buffer)
else
 n := max;
fs.Write(Buffer, n);
max := max - n;
end;
FlushFileBuffers(fs.Handle);
end;
finally
fs.Free;
end;
Deletefile(FileName);
end;

-----------------------------------------------

Большое спасибо всем кто откликнется.
  Вверх
Vit
Дата 25.10.2002, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата
if not DeleteFile(SearchRec.Name) then


Заменяешь на

Код


if not _DeleteFile(SearchRec.Name) then
...

вот описание этой функции:

Function _DeleteFile(FileName:string):boolean;
begin
 result:=true;
 try
   WipeFile(FileName);
   result:=DeleteFile(FileName);
 except
   result:=false;
 end;
end;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.