| 805 | |
| 806 | |
| 807 | void CmdExtract::UnstoreFile(ComprDataIO &DataIO,int64 DestUnpSize) |
| 808 | { |
| 809 | Array<byte> Buffer(File::CopyBufferSize()); |
| 810 | while (true) |
| 811 | { |
| 812 | int ReadSize=DataIO.UnpRead(&Buffer[0],Buffer.Size()); |
| 813 | if (ReadSize<=0) |
| 814 | break; |
| 815 | int WriteSize=ReadSize<DestUnpSize ? ReadSize:(int)DestUnpSize; |
| 816 | if (WriteSize>0) |
| 817 | { |
| 818 | DataIO.UnpWrite(&Buffer[0],WriteSize); |
| 819 | DestUnpSize-=WriteSize; |
| 820 | } |
| 821 | } |
| 822 | } |
| 823 | |
| 824 | |
| 825 | bool CmdExtract::ExtractFileCopy(File &New,wchar *ArcName,wchar *NameNew,wchar *NameExisting,size_t NameExistingSize) |