Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.13;
Скачать: 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 вся ветка

Текущий архив: 2003.10.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
4-40729
Sirakuz
2003-08-08 13:08
2003.10.13
очистить edit


6-40532
IGORYOK
2003-08-15 11:55
2003.10.13
Кто знает как подключиться к мобилки через интернет


4-40731
Viking
2003-08-08 10:43
2003.10.13
Как получить список процедур из DLL?


3-40316
Илайдж
2003-09-22 09:56
2003.10.13
2k: backup


1-40460
tria
2003-10-03 11:27
2003.10.13
Как значение типа множество преобразовать в число или строку?