IZipArchive.AddFromStream

Синтаксис

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». В архив будет добавлен файл, который будет создан в памяти во время выполнения примера.

См. также:

IZipArchive