работать со всеми https
httpClient = new DefaultHttpClient();
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException { }
public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException { }
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
ctx.init(null, new TrustManager[]{tm}, null);
SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
httpClient.getConnectionManager().getSchemeRegistry().register(new Scheme("https", 443, ssf));
Некоторое время назад я перепробовал все библиотеки сжатия Delphi, которые смог найти, и в конце концов я использовал KaZip от Кирил Антонов .
Мои требования:
Я использую его в основном для преобразования файлов .kml в .kmz, и это происходит на удивление быстро.
Вот пример того, как Я использую это:
uses
KaZip;
...
// replaces a .kml file with a .kmz file
procedure KmlToKmz(const aFileName: string);
var
FS: TFileStream;
KaZip:TKaZip;
KmzFileName:TFileName;
begin
KmzFileName := ChangeFileExt(aFileName, '.kmz');
KaZip := TKaZip.Create(nil);
try
// create an empty zipfile with .kmz extension:
FS := TFileStream.Create(KmzFileName, fmOpenReadWrite or FmCreate);
try
KaZip.CreateZip(FS);
finally
FS.Free;
end;
KaZip.Open(KmzFileName); // Open the new .kmz zipfile
KaZip.Entries.AddFile(aFileName); // add the .kml
KaZip.Close;
DeleteFile(aFileName); // delete the .kml
finally
KaZip.Free;
end;
end;
Вы можете использовать TurboPower Abbrevia , который теперь является открытым исходным кодом.
Согласно потоку в eggheadcafe , вы можете использовать CreateFile Function с FILE_FLAG_BACKUP_SEMANTICS
для создания сжатой папки.
] Для маршрута расширений оболочки см. Использование расширения оболочки Windows XP «Сжатая папка» для работы с файлами .zip с помощью пространства имен Edanmo, написанного на VB.
Я только что нашел аналогичный вопрос спросил на C ++. Взгляните на Создание ZIP-файла в Windows (XP / 2003) на C / C ++ . У меня такое чувство, что проще всего купить ZipForge. См. Заархивируйте файл в примере кода Delphi .
Вы можете использовать некоторую версию командной строки любого компрессора, например 7zip , и выполнять задачу с помощью ShellExecute, либо вы можете использовать бесплатный или коммерческий компонент, как любой из этих .
Я использовал ZipMaster , и он очень хорошо подходит для моих целей. Я не знаю, каковы ваши требования к размеру, пространству и производительности.
«Заархивированная» папка в Windows - это не что иное, как файл .ZIP, сжатый с помощью любой стандартной библиотеки zip. Сжатые папки - это другое дело, и для них требуется дисковый формат NTFS.
Для файла «Zip» я настоятельно рекомендую Turbo Power Abbrevia , который является открытым исходным кодом и хорошо работает. Вы можете проверить этот альтернативный сайт, если вы используете Delphi 2009, поскольку это может быть более поздняя копия.
Если вы хотите использовать параметр сжатых папок, вам нужно будет изменить флаги каталогов на дескриптор каталога. Это повлияет только на НОВЫЕ файлы, добавленные в этот каталог, и не будет автоматически сжимать существующие файлы. Если у вас есть существующий каталог, который вы пытаетесь сжать, переименуйте каждый существующий файл, и загрузите и сохраните его с исходным именем, удалив исходный файл по завершении каждого из них. У Йози была хорошая ссылка на документацию MSDN . Просто помните, что это работает только с дисками, отформатированными в NTFS, поэтому вам нужно будет добавить проверку для этого в свой код.