Вниз
Скачать: CL | DM;

Нужна помощь!!!!!!   Найти похожие ветки 

 
anton_private   (2003-10-01 13:09) [0]

Итак
Есть две функции

function TMainForm.IsValidFile(SearchRec: TSearchRec): Boolean;
begin
if (SearchRec.Name<>".") and (SearchRec.Name<>"..") then Result:=True
else Result:=False;
end;

function TMainForm.IsValidDirectory(SearchRec: TSearchRec): Boolean;
begin
if ((SearchRec.Attr and faDirectory) = faDirectory) and
(SearchRec.Name<>".") and (SearchRec.Name<>"..") then Result:=True
else Result:=False;
end;

далее при сканировании каталога делаю следующее (в рамках моей процедуры CopyDir)

F : TSearchRec;
............
............
............
if FindFirst(SDir+"*.*",faDirectory,F) = 0 then
begin
if (F.Attr<>faDirectory) or (F.Attr<>faAnyFile)then
begin
while FindNext(F)=0 do
begin

if IsValidDir(F) then
begin
TmpDir:=NormalDir(SDir)+string(F.Name);
N:=NormalDir(DestDir)+string(F.Name);
if (F.Name<>".") and (F.Name<>"..")
then CopyDir(TmpDir,N);
end;
if IsValidFile(F) then
begin CopyFile(PChar(NormalDir(SDir)+string(F.Name)),
PChar(NormalDir(DestDir)+string(F.Name)),True);
G.Progress:=G.Progress+F.Size;
MainForm.Repaint;
end;
end;
end;
FindClose(F);

При этом копируются ТОЛЬКО файлы. Дир не копируются, не говоря уже об их содержимом))))

В ЧЁМ Я НЕ ПРАВ?

Спасибо всем отКЛИКнувшимся?


 
ZEE ©   (2003-10-01 13:16) [1]

во-первых: зачем F.Attr<>faAnyFile ?
во-вторых: у тебя сразу за FindFirst() идет FindNext() - т.е. при первый найденый файл добавляться не будет
в-третьих: G.Progress:=G.Progress+F.Size;, а где G.MaxValue:= ? (G я так понял это TGauge)


 
anton_private   (2003-10-01 13:23) [2]

2ZEE

Вообщем замечания ценные. Посмотрю

Но они не отвечают на основной вопрос
Почему не копируются директории???



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
14-40618
ИМХО
2003-09-24 19:17
2003.10.13
LIT


3-40236
M126
2003-09-23 15:07
2003.10.13
Как пользоваться Substring в запросе?


7-40697
DiD
2003-07-29 01:14
2003.10.13
Свойства соединения и RAS


4-40722
k@rt
2003-08-08 20:33
2003.10.13
EDIT во все окно


1-40490
Tornado
2003-10-02 11:41
2003.10.13
Дилетанский вопрос по функциям




   Наверх