Библиотека paszlib кракозябры в национальных символах

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
viterik
незнакомец
Сообщения: 2
Зарегистрирован: 02.03.2023 13:01:56

Библиотека paszlib кракозябры в национальных символах

Сообщение viterik »

IDE Lazarus v.2.2.4
Подскажи пожалуйста. Библиотека paszlib. Появляются кракозябры в наименованиях в фалах (в архиве ZIP) (кириллица)

Использую код со статьи из https://wiki.freepascal.org/paszlib/ru
Архивирование всего дерева каталогов
Этот пример рекурсивно добавит содержимое 'C: MyFolder' в 'myzipfile.zip

Код: Выделить всё

Uses ...Zipper,FileUtil
var
  AZipper: TZipper;
  TheFileList:TStringList;
begin
  MyDirectory:='C:\MyFolder';
  AZipper := TZipper.Create;
  AZipper.Filename := 'myzipfile.zip';
  TheFileList:=TStringList.Create;
  try
    FindAllFiles(TheFileList, MyDirectory);
    AZipper.Entries.AddFileEntries(TheFileList);
    AZipper.ZipAllFiles;
  finally
    TheFileList.Free;
    AZipper.Free;
  end;
end;
мриомио.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
iskander
энтузиаст
Сообщения: 630
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

viterik писал(а):Подскажи пожалуйста. Библиотека paszlib. Появляются кракозябры в наименованиях в фалах (в архиве ZIP) (кириллица)

Использую код со статьи из https://wiki.freepascal.org/paszlib/ru
А на пример из этой же статьи, только повыше, внимания не обратили?
Он прямо так и озаглавлен: Упаковка файлов с сохранением кодировки имен файлов.
То есть ваш пример должен выглядеть как-то так:

Код: Выделить всё

program zip_dir;
{$mode objfpc}{$H+}
uses
  Classes, SysUtils, FileUtil, Zipper;
var
  AZipper: TZipper;
  TheFileList: TStringList;
  MyDirectory: string;
begin
  MyDirectory := 'C:\MyFolder';
  AZipper := TZipper.Create;
  AZipper.Filename := 'myzipfile.zip';
  TheFileList := TStringList.Create;
  try
    FindAllFiles(TheFileList, MyDirectory);
    AZipper.Entries.AddFileEntries(TheFileList);
    AZipper.UseLanguageEncoding := True;
    AZipper.ZipAllFiles;
  finally
    TheFileList.Free;
    AZipper.Free;
  end;
end.
viterik
незнакомец
Сообщения: 2
Зарегистрирован: 02.03.2023 13:01:56

Сообщение viterik »

iskander писал(а):А на пример из этой же статьи, только повыше, внимания не обратили?
Он прямо так и озаглавлен: Упаковка файлов с сохранением кодировки имен файлов.
То есть ваш пример должен выглядеть как-то так:
Ну большое спасибо тебе! Все работает!!!
Ответить