Форум: "Основная";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];
ВнизНужна помощь!!!!!! Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c