文本文件和二进制不一样,普通字符可以readln readstring readbytes,但是二进制一定要用流ReadStream,否则接收文件后虽然大小一样但是就是不一样(对于换行处理有差异),比如zip文件,解压缩时会报错文件损坏
if(FileExists(sFileName) )
DeleteFile(sFileName);
TMemoryStream *MyStream;
TFileStream *tem;
while(attachsize>0){
AContext->Connection->Socket->CheckForDataOnSource(200);
int len=AContext->Connection->Socket->InputBuffer->Size;
MyStream= new TMemoryStream();
AContext->Connection->Socket->ReadStream(MyStream,len);
if(FileExists(sFileName) )
tem= new TFileStream(sFileName,fmOpenWrite);
else
tem= new TFileStream(sFileName,fmCreate);
tem-> Position = tem-> Size;
MyStream->SaveToStream(tem);
attachsize-=len;
TRACE(1,"fileopen ok len=%d attachsize=%d",len,attachsize);
}
tem->Free();
MyStream->Free();
如果是普通文字,尽量用readbytes,防止中文乱码。传二进制 在易语言里是用字节集,别用普通类型