MemoryStream의 내용을 FileStream으로 한꺼번에 복사하는것이 아니라,
클라이언트에서 사이즈 2048씩 받아서 옮기려고 합니다.
그런데 mStream의 내용이 fStream으로 붙여쓰기가 안되네요..
아래처럼 코딩했는데 어떻게 해야하는지 도움 부탁드립니다.
while (fStream.Size > 12345) do
begin
mStream.Position := 0;
fStream.Seek(0, soFromEnd);
fStream.CopyFrom(mStream, 2048);
end;
그럼~ 항상 즐거운 프로그래밍 하시길~~
function StreamFileCopy( const sourcefilename, targetfilename: String ): String;
var
S,T: TFileStream;
SS:String;
Begin
SS:= ExctractFileName(targetfilename) + '복사하려는 파일이 이미 존재합니다. 덮어쓰시겠습니까?';
if FileExists(targetfilename) then
if Application.MessageBox(SS,'경고', MB_YESNO+MB_ICONQUESTION)=id_No then
begin
Result:='복사취소';
Exit;
end;
Result := '';
S := TFileStream.Create( sourcefilename, fmOpenRead );
try try
T := TFileStream.Create( targetfilename, fmOpenWrite or fmCreate );
except
Result := '파일 오픈에러';//SE_CreateError;
end;
try try
T.CopyFrom(S, S.Size ) ;
except
Result := '파일 복사에러';//SE_CopyError;
end;
finally
T.Free;
end;
finally
S.Free;
end;
End;
procedure TForm1.Button1Click(Sender: TObject);
var S: String;
begin
S:= StreamFileCopy(Edit1.Text, Edit2.Text);
if S <> '' then ShowMessage(S)
else ShowMessage('파일 복사가 완료되었습니다');
end;