AddFromStream(Stream: IIOStream; ArchPath: String): IZipArchiveEntry;
AddFromStream(Stream: Prognoz.Platform.Interop.ForeIO.IIOStream; ArchPath: String): Prognoz.Platform.Interop.ForeIO.IZipArchiveEntry;
Stream. Поток, связанный с файлом, который необходимо добавить в архив.
ArchPath. Путь к папке внутри архива и имя файла, с которым в архив будет добавлен файл из потока.
Метод AddFromStream добавляет в архив файл, передаваемый в указанном потоке.
Для выполнения примера предполагается наличие на диске папки «D:\Work», внутри этой папки имеется подкаталог «Archives» для хранения архивных файлов. Добавьте ссылку на системную сборку IO. При работе в Fore.NET добавьте ссылки на сборки ForeIO, ForeSystem.
Sub UserProc;
Var
ZIP: IZipArchive;
MStream: IMemoryStream;
TxtWriter: ITextWriter;
Begin
ZIP := New ZipArchive.Create("d:\Work\Archives\Data_Stream.zip", ZipMode.Create);
MStream := New MemoryStream.Create;
TxtWriter := New TextWriter.Create(MStream);
TxtWriter.Encoding := CodePage.UTF8;
TxtWriter.WriteLnString("***File Info***");
TxtWriter.WriteString("Created: "); TxtWriter.WriteDateTime(DateTime.Now);
TxtWriter.Flush;
MStream.Position := 0;
ZIP.AddFromStream(MStream, "Info.txt");
Dispose ZIP;
End Sub UserProc;
Imports Prognoz.Platform.Interop.ForeIO;
Imports Prognoz.Platform.Interop.ForeSystem;
Public Shared Sub Main(Params: StartParams);
Var
ZIP: IZipArchive = New ZipArchiveClass();
MStream: IMemoryStream = New MemoryStreamClass();
TxtWriter: ITextWriter = New TextWriterClass();
Begin
ZIP.Create("D:\Work\Archives\Data_Stream.zip", ZipMode.zmCreate, ZipCompressionLevel.zcDefaultCompression);
MStream.Create();
TxtWriter.Create(MStream);
TxtWriter.Encoding := CodePage.cpUTF8;
TxtWriter.WriteLnString("***File Info***");
TxtWriter.WriteString("Created: "); TxtWriter.WriteDateTime(DateTime.Now);
TxtWriter.Flush();
MStream.Position := 0;
ZIP.AddFromStream(MStream, "Info.txt");
System.Runtime.InteropServices.Marshal.ReleaseComObject(ZIP);
End Sub;
В результате выполнения примера будет создан архив «Data_Stream.zip». В архив будет добавлен файл, который будет создан в памяти во время выполнения примера.
См. также: