Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скопировать файл из локалки


f0rm ©   (2002-01-25 11:56:00) 

Как средствами дельфи скопировать файл, например \\198.165.54.2\c\autoexecbat на свой винт, copyfile() не работает


Giga-Byte   (2002-01-25 12:00:00) [1]

Достал на этом сайте:

procedure FastFileCopy(Const InfileName, OutFileName: String); Const BufSize = 3*4*4096; { 48Kbytes дает прекрасный результат }
Type PBuffer = ^TBuffer;
TBuffer = array [1..BufSize] of Byte;
var Size: integer;
buffer: PBuffer;
infile, outfile: File;
SizeDone, SizeFile: Longint;
begin
if (InFileName<>OutFileName) then
begin
buffer := Nil;
AssignFile(infile,InFileName);
System.Reset(infile,1);
try
SizeFile:=FileSize(infile);
AssignFile(outfile, OutFileName);
System.Rewrite(outfile, 1);
try
SizeDone := 0;
New(Buffer);
repeat
BlockRead(infile, Buffer^, BufSize,Size);
Inc(SizeDone, Size);
BlockWrite(outfile,Buffer^, Size)
until Size<BufSize;
FileSetDate(TFileRec(outfile).Handle,
FileGetDate(TFileRec(infile).Handle));
finally
if Buffer<>Nil then Dispose(Buffer);
System.close(outfile)
end;
finally
System.close(infile);
end;
end else
Raise EInOutError.Create("File cannot be copied into itself");
end;


Giga-Byte   (2002-01-25 12:00:00) [2]

Достал на этом сайте:

procedure FastFileCopy(Const InfileName, OutFileName: String); Const BufSize = 3*4*4096; { 48Kbytes дает прекрасный результат }
Type PBuffer = ^TBuffer;
TBuffer = array [1..BufSize] of Byte;
var Size: integer;
buffer: PBuffer;
infile, outfile: File;
SizeDone, SizeFile: Longint;
begin
if (InFileName<>OutFileName) then
begin
buffer := Nil;
AssignFile(infile,InFileName);
System.Reset(infile,1);
try
SizeFile:=FileSize(infile);
AssignFile(outfile, OutFileName);
System.Rewrite(outfile, 1);
try
SizeDone := 0;
New(Buffer);
repeat
BlockRead(infile, Buffer^, BufSize,Size);
Inc(SizeDone, Size);
BlockWrite(outfile,Buffer^, Size)
until Size<BufSize;
FileSetDate(TFileRec(outfile).Handle,
FileGetDate(TFileRec(infile).Handle));
finally
if Buffer<>Nil then Dispose(Buffer);
System.close(outfile)
end;
finally
System.close(infile);
end;
end else
Raise EInOutError.Create("File cannot be copied into itself");
end;

Я ей фильмы/клипы копирую с компов


Наверх

Титульная страница Поиск, карта сайта Написать письмо