![]() |
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 ZIP Files Without Preserving Directory Paths Using DiscardPathsSee more Zip Examples This example demonstrates how to use the When This is useful when:
Suppose the ZIP archive contains: Normally, extracting the ZIP would create: But when The stored ZIP directory paths are discarded during extraction.
-- 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 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, 'example.zip' IF @success = 0 BEGIN EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @zip RETURN END -- Discard stored ZIP paths during extraction. -- -- When DiscardPaths = 1, all files are extracted -- directly into the target directory without recreating -- the ZIP directory structure. EXEC sp_OASetProperty @zip, 'DiscardPaths', 1 -- Extract all files to the output directory. -- -- Even if the ZIP contains: -- -- docs/readme.txt -- docs/manual.pdf -- images/logo.png -- -- The extracted files become: -- -- c:/output/readme.txt -- c:/output/manual.pdf -- c:/output/logo.png -- DECLARE @numFilesUnzipped int EXEC sp_OAMethod @zip, 'Unzip', @numFilesUnzipped OUT, 'c:/output' 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 EXEC sp_OAMethod @zip, 'CloseZip', NULL PRINT 'Files extracted successfully.' EXEC @hr = sp_OADestroy @zip END GO |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.