![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Extract Only Newer Files Using UnzipNewerSee more Zip Examples This example demonstrates how to use the This is useful for:
Suppose the ZIP archive contains: And suppose the target extraction directory already contains: If the ZIP version of If the existing Files that do not yet exist on disk are extracted normally. The
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) DECLARE @success int SELECT @success = 0 DECLARE @zip int EXEC @hr = sp_OACreate 'Chilkat.Zip', @zip OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- Open an existing ZIP archive. EXEC sp_OAMethod @zip, 'OpenZip', @success OUT, 'qa_data/zips/applicationUpdate.zip' IF @success = 0 BEGIN EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @zip RETURN END -- ------------------------------------------------------------ -- Extract only ZIP entries that are newer than the -- corresponding files already existing on disk. -- -- Existing files that are already up-to-date are skipped. -- DECLARE @numFilesUnzipped int EXEC sp_OAMethod @zip, 'UnzipNewer', @numFilesUnzipped OUT, 'c:/temp/app' IF @numFilesUnzipped < 0 BEGIN EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @zip RETURN END PRINT 'Number of files extracted = ' + @numFilesUnzipped PRINT '' -- ------------------------------------------------------------ -- Example behavior: -- -- ZIP contains: -- -- docs/readme.txt -- images/logo.png -- data/config.json -- -- Existing filesystem files: -- -- c:/temp/app/docs/readme.txt -- c:/temp/app/images/logo.png -- -- If the ZIP version of docs/readme.txt is newer, -- it will overwrite the existing file. -- -- If c:/temp/app/images/logo.png is already newer, -- it will be skipped. -- -- data/config.json will be extracted if it does not -- already exist. -- EXEC sp_OAMethod @zip, 'CloseZip', NULL PRINT 'UnzipNewer completed successfully.' EXEC @hr = sp_OADestroy @zip END GO |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.