ArchPath: String;
ArchPath: String;
Свойство ArchPath возвращает путь до элемента внутри архива.
Если текущий элемент соответствует файлу, то свойство возвращает путь и наименование файла, например «File.txt» или «Folder/File.txt».
Если текущий элемент соответствует папке, то свойство возвращает путь до папки с добавленным в конце слэшем, например «Folder/» или «Folder/SubFolder/».
Для выполнения примера предполагается наличие на диске архива «D:\Work\Archives\Data.zip». Подключите системную сборку IO.
Sub UserProc;
Var
ZIP: IZipArchive;
ZIPEntry: IZipArchiveEntry;
i, c: Integer;
Begin
//Чтение архива
ZIP := New ZipArchive.Create("D:\Work\Archives\Data.zip", ZipMode.Read);
c := ZIP.Count;
//Просмотр содержимого архива
For i := 0 To c - 1 Do
ZIPEntry := ZIP.Item(i);
If ZIPEntry.Size = 0 Then
Debug.WriteLine("Папка: " + ZIPEntry.ArchPath);
Else
Debug.WriteLine("Файл: " + ZIPEntry.ArchPath + ". Исходный размер файла: " + ZIPEntry.Size.ToString + " байт.");
End If;
End For;
Dispose ZIP;
End Sub UserProc;
Imports Prognoz.Platform.Interop.ForeIO;
Public Shared Sub Main(Params: StartParams);
Var
ZIP: IZipArchive = New ZipArchiveClass();
ZIPEntry: IZipArchiveEntry;
i, c: Integer;
Begin
//Чтение архива
ZIP.Create("D:\Work\Archives\Data.zip", ZipMode.zmRead, ZipCompressionLevel.zcDefaultCompression);
c := ZIP.Count;
//Просмотр содержимого архива
For i := 0 To c - 1 Do
ZIPEntry := ZIP.Item[i];
If ZIPEntry.Size = 0 Then
System.Diagnostics.Debug.WriteLine("Папка: " + ZIPEntry.ArchPath);
Else
System.Diagnostics.Debug.WriteLine("Файл: " + ZIPEntry.ArchPath + ". Исходный размер файла: " + ZIPEntry.Size.ToString() + " байт.");
End If;
End For;
System.Runtime.InteropServices.Marshal.ReleaseComObject(ZIP);
End Sub;
При выполнении примера в консоль среды разработки будет выведена информация о содержимом архива «Data.zip».
См. также: