![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование файлов [D6, Win2k, WinXP]
Diller © (2005-09-01 08:59:00)Доброго времени суток! Прошу помочь с одной проблемой:
Мне нужно сделать программу одной из функций которой будет синхронизация файлов в различных папках. Во время рботы сттолкнулся с тем, что в Delphi отсутсвует процедура копирования файлов, а в ShellApiпроцедура CopyFileотказывается работать с String. Если сможете помочь - буду очень благодарен.
parashutist (2005-09-14 11:54:00) [1]Удалено модератором
Примечание: Задай вопрос в своей ветке
wal (2005-09-01 10:01:00) [2]
> синхронизация файлов в различных папках
> Win2k, WinXP
Может стоит подумать о HardLink'ах на NTFS'е
С уважением.
alex_*** (2005-09-01 09:12:00) [3]ого... лихо. А просто вызвать CopyFile(PChar(src), PChar(dest), true) ?
Digitman (2005-09-01 09:10:00) [4]
> в Delphi отсутсвует процедура копирования файлов
чтой-то вдруг ?
та самая CopyFile - она ж не на Луне, она - в Делфи !
> процедура CopyFile отказывается работать с String
это не процедура, а функция.
MyBoolResult := CopyFile(PChar(MyStringVariable), ...);
Goga (2005-09-01 09:08:00) [5]
Windows
function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var F : TShFileOpStruct;
begin
F.Wnd := 0; F.wFunc := FO_COPY;
FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result:=ShFileOperation(F) = 0;
end;
поток
Procedure FileCopy(Const SourceFileName, TargetFileName: String);
Var
S,T : TFileStream;
Begin
S := TFileStream.Create(sourcefilename, fmOpenRead );
try
T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
try
T.CopyFrom(S, S.Size ) ;
FileSetDate(T.Handle, FileGetDate(S.Handle));
finally
T.Free;
end;
finally
S.Free;
end;
end;
String --> PChar
Var S: String;
P: PChar;
P:=PChar(S);