Prosím o radu, nějak se nemůžu vyhrabat z následujícího problému.
Mám zip, který obsahuje názvy souborů s diakritikou a nejsem schopný ho pomocí TZipFile rozbalit se správnou češtinou.
Zip je vytvořen pomocí knihovny ZipForge. Nicméně úplně stejně se chová i zip vytvořený pomocí Total Commanderu v defaultním nastavení. Pokud zdrojový archiv vytvořím pomocí TZipFile, tak je to OK.
V Total Commanderu vytvořím zip se souborem
Příliš žluťoučký kůň úpěl ďábelské ódy.txt a když ho rozbalím pomocí class procedure TZipFile.ExtractZipFile tak dostanu
P²íliτ ºlu£ouƒk∞ kàσ úp╪l ╘ábelské ódy.txt. Stejná hámotina je i ve FileName v následujícím kódu.
Zkoušel jsme i různě cvičit s TZipFile.Encoding a různé pokusy s TEncoding.Default.GetString(LZip.FileInfo
.FileName), ale bez výsledku.
Total Commander i 7Zip ty archivy samozřejmě zobrazí i rozbalí správně.
Co tam dělám blbě? Díky za každé popostrčení.
Zip na zkoušku je zde: https://1drv.ms/u/s!AphXA0AeJWXwhN4qVpmc6_d8bBd0Eg?e=Mb2zPV
var LZip := TZipFile.Create;
if LZip.IsValid(AFileName) then
begin
LZip.Open(AFileName, zmReadWrite);
for var i := 0 to LZip.FileCount - 1 do
begin
AddLog(i.ToString ': ' LZip.FileName[i]); // P²íliτ ºlu£ouƒk∞ kàσ úp╪l ╘ábelské ódy.
end;
LZip.Close;
end;
LZip.Free;