hbziparc.prg | |||
Type | Function | Source | Line |
---|---|---|---|
PROCEDURE | SetZipReadOnly( lReadOnly )
PROCEDURE SetZipReadOnly( lReadOnly ) DEFAULT lReadOnly TO .F. s_lReadOnly := lReadOnly /* TODO: Implement. */ RETURN | hbziparc.prg | 65 |
PROCEDURE | hb_SetZipComment( cComment )
PROCEDURE hb_SetZipComment( cComment ) IF cComment == NIL .OR. ISCHARACTER( cComment ) s_cComment := cComment ENDIF RETURN | hbziparc.prg | 104 |
FUNCTION | hb_GetZipComment( cFileName )
FUNCTION hb_GetZipComment( cFileName ) LOCAL hUnzip LOCAL cComment LOCAL cExt IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF !Empty( hUnzip := hb_UnzipOpen( cFileName ) ) hb_UnzipGlobalInfo( hUnzip, NIL, @cComment ) hb_UnzipClose( hUnzip ) ELSE cComment := "" ENDIF RETURN cComment | hbziparc.prg | 140 |
FUNCTION | hb_GetFileCount( cFileName )
FUNCTION hb_GetFileCount( cFileName ) LOCAL hUnzip LOCAL nEntries LOCAL cExt IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF !Empty( hUnzip := hb_UnzipOpen( cFileName ) ) hb_UnzipGlobalInfo( hUnzip, @nEntries, NIL ) hb_UnzipClose( hUnzip ) ELSE nEntries := 0 ENDIF RETURN nEntries | hbziparc.prg | 161 |
FUNCTION | hb_ZipWithPassword( cFileName )
FUNCTION hb_ZipWithPassword( cFileName ) LOCAL lCrypted := .F. LOCAL hUnzip LOCAL cExt IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF !Empty( hUnzip := hb_UnzipOpen( cFileName ) ) IF hb_UnzipFileFirst( hUnzip ) == 0 hb_UnzipFileInfo( hUnzip, NIL, NIL, NIL, NIL, NIL, NIL, NIL, NIL, @lCrypted ) ENDIF hb_UnzipClose( hUnzip ) ENDIF RETURN lCrypted | hbziparc.prg | 182 |
FUNCTION | hb_GetFilesInZip( cFileName, lVerbose )
FUNCTION hb_GetFilesInZip( cFileName, lVerbose ) LOCAL hUnzip LOCAL nErr LOCAL cExt LOCAL dDate LOCAL cTime LOCAL nSize LOCAL nCompSize LOCAL nInternalAttr LOCAL nMethod LOCAL lCrypted LOCAL cComment LOCAL nRatio LOCAL aFiles := {} IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF !Empty( hUnzip := hb_UnzipOpen( cFileName ) ) DEFAULT lVerbose TO .F. nErr := hb_UnzipFileFirst( hUnzip ) DO WHILE nErr == 0 hb_UnzipFileInfo( hUnzip, @cFileName, @dDate, @cTime, @nInternalAttr, NIL, @nMethod, @nSize, @nCompSize, @lCrypted, @cComment ) IF lVerbose IF nSize > 0 nRatio := 100 - ( ( nCompSize * 100 ) / nSize ) IF nRatio < 0 nRatio := 0 ENDIF ELSE nRatio := 0 ENDIF /* TOFIX: Original hbziparch has nMethod as string: Unknown, Stored, DeflatN, DeflatX, DeflatF. */ /* TOFIX: Original hbziparch has attributes as string. */ /* TOFIX: Original hbziparch has crc32 filled with a hexadecimal value. */ AAdd( aFiles, { cFileName, nSize, nMethod, nCompSize, nRatio, dDate, cTime, "" /* crc32 */, nInternalAttr /* cAttr */, lCrypted, cComment } ) ELSE AAdd( aFiles, cFileName ) ENDIF nErr := hb_UnzipFileNext( hUnzip ) ENDDO hb_UnzipClose( hUnzip ) ENDIF RETURN aFiles | hbziparc.prg | 205 |
FUNCTION | hb_ZipTestPK( cFileName )
FUNCTION hb_ZipTestPK( cFileName ) HB_SYMBOL_UNUSED( cFileName ) /* NOTE: Spanning not supported. */ RETURN 0 | hbziparc.prg | 307 |
FUNCTION | hb_SetDiskZip( bBlock )
FUNCTION hb_SetDiskZip( bBlock ) HB_SYMBOL_UNUSED( bBlock ) /* NOTE: Spanning not supported. */ RETURN .F. | hbziparc.prg | 346 |
FUNCTION | TransferFromZip( cZipSrc, cZipDst, aFiles )
FUNCTION TransferFromZip( cZipSrc, cZipDst, aFiles ) HB_SYMBOL_UNUSED( cZipSrc ) HB_SYMBOL_UNUSED( cZipDst ) HB_SYMBOL_UNUSED( aFiles ) /* TODO: Implement. */ RETURN .F. | hbziparc.prg | 354 |
PROCEDURE | hb_SetBuffer( nWriteBuffer, nExtractBuffer, nReadBuffer )
PROCEDURE hb_SetBuffer( nWriteBuffer, nExtractBuffer, nReadBuffer ) HB_SYMBOL_UNUSED( nWriteBuffer ) HB_SYMBOL_UNUSED( nExtractBuffer ) IF !Empty( nReadBuffer ) s_nReadBuffer := Min( nReadBuffer, 32768 ) ENDIF RETURN | hbziparc.prg | 403 |
FUNCTION | hb_ZipFileByTDSpan( cFileName, aFileToCompress, nLevel, bUpdate, lOverwrite, cPassword, nSpanSize, lWithPath, lWithDrive, bProgress, lFullPath, acExclude )
FUNCTION hb_ZipFileByTDSpan( cFileName, aFileToCompress, nLevel, bUpdate, lOverwrite, cPassword, nSpanSize, lWithPath, lWithDrive, bProgress, lFullPath, acExclude ) HB_SYMBOL_UNUSED( nSpanSize ) /* NOTE: Spanning not supported. */ RETURN hb_ZipFile( cFileName, aFileToCompress, nLevel, bUpdate, lOverwrite, cPassword, lWithPath, lWithDrive, bProgress, lFullPath, acExclude ) | hbziparc.prg | 509 |
FUNCTION | hb_ZipFileByPKSpan( ... )
FUNCTION hb_ZipFileByPKSpan( ... ) /* NOTE: Spanning not supported. */ RETURN hb_ZipFile( ... ) | hbziparc.prg | 620 |
FUNCTION | hb_ZipFile( cFileName, acFiles, nLevel, bUpdate, lOverwrite, cPassword, lWithPath, lWithDrive, bProgress, lFullPath, acExclude )
FUNCTION hb_ZipFile( cFileName,; acFiles,; nLevel,; bUpdate,; lOverwrite,; cPassword,; lWithPath,; lWithDrive,; bProgress,; lFullPath,; acExclude ) LOCAL lRetVal := .T. LOCAL hZip LOCAL hHandle LOCAL nLen LOCAL cBuffer := Space( s_nReadBuffer ) LOCAL cFileToZip LOCAL nPos := 1 LOCAL nRead LOCAL cName, cExt, cDrive, cPath LOCAL nSize LOCAL aExclFile LOCAL aProcFile LOCAL cFN LOCAL aFile LOCAL tmp DEFAULT lOverwrite TO .F. DEFAULT lFullPath TO .T. /* TODO: Implement */ HB_SYMBOL_UNUSED( lFullPath ) HB_SYMBOL_UNUSED( acExclude ) IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF lOverwrite .AND. hb_FileExists( cFileName ) FErase( cFileName ) ENDIF IF !Empty( hZip := hb_ZipOpen( cFileName ) ) DEFAULT acFiles TO {} DEFAULT acExclude TO {} DEFAULT lWithPath TO .F. DEFAULT lWithDrive TO .F. IF hb_IsString( acFiles ) acFiles := { acFiles } ENDIF IF hb_IsString( acExclude ) acExclude := { acExclude } ENDIF // ; /* NOTE: Try not to add the .zip file to itself. */ hb_FNameSplit( cFileName, NIL, @cName, @cExt ) aExclFile := { hb_FNameMerge( NIL, cName, cExt ) } FOR EACH cFN IN acExclude IF "?" $ cFN .OR. "*" $ cFN tmp := Directory( cFN ) FOR EACH aFile IN tmp AAdd( aExclFile, aFile[ F_NAME ] ) NEXT ELSE AAdd( aExclFile, cFN ) ENDIF NEXT aProcFile := {} FOR EACH cFN IN acFiles IF "?" $ cFN .OR. "*" $ cFN tmp := Directory( cFN ) FOR EACH aFile IN tmp IF AScan( aExclFile, {| cExclFile | hb_FileMatch( aFile[ F_NAME ], cExclFile ) } ) == 0 AAdd( aProcFile, aFile[ F_NAME ] ) ENDIF NEXT ELSE IF AScan( aExclFile, {| cExclFile | hb_FileMatch( cFN, cExclFile ) } ) == 0 AAdd( aProcFile, cFN ) ENDIF ENDIF NEXT aExclFile := NIL // ; nPos := 1 FOR EACH cFileToZip IN aProcFile IF ( hHandle := FOpen( cFileToZip, FO_READ ) ) != F_ERROR IF hb_IsBlock( bUpdate ) Eval( bUpdate, cFileToZip, nPos++ ) ENDIF nRead := 0 nSize := hb_FSize( cFileToZip ) hb_FNameSplit( cFileToZip, @cPath, @cName, @cExt, @cDrive ) hb_ZipFileCreate( hZip, hb_FNameMerge( iif( lWithPath, cPath, NIL ), cName, cExt, iif( lWithDrive, cDrive, NIL ) ),; NIL, NIL, NIL, NIL, NIL, nLevel, cPassword, NIL, NIL ) DO WHILE ( nLen := FRead( hHandle, @cBuffer, Len( cBuffer ) ) ) > 0 IF hb_IsBlock( bProgress ) nRead += nLen Eval( bProgress, nRead, nSize ) ENDIF hb_ZipFileWrite( hZip, Left( cBuffer, nLen ), nLen ) ENDDO hb_ZipFileClose( hZip ) FClose( hHandle ) /* TODO: Clear ARCHIVE bit. */ ENDIF NEXT hb_ZipClose( hZip, s_cComment ) ELSE lRetVal := .F. ENDIF RETURN lRetVal | hbziparc.prg | 723 |
FUNCTION | hb_UnzipFile( cFileName, bUpdate, lWithPath, cPassword, cPath, acFiles, bProgress )
FUNCTION hb_UnzipFile( cFileName, bUpdate, lWithPath, cPassword, cPath, acFiles, bProgress ) LOCAL lRetVal := .T. LOCAL hUnzip LOCAL nErr LOCAL nPos LOCAL cZipName LOCAL cExt DEFAULT lWithPath TO .F. /* TODO: Implement. */ HB_SYMBOL_UNUSED( lWithPath ) HB_SYMBOL_UNUSED( bProgress ) IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF !Empty( hUnzip := hb_UnzipOpen( cFileName ) ) IF hb_IsNumeric( acFiles ) .OR. ; hb_IsString( acFiles ) acFiles := { acFiles } ENDIF IF Empty( cPath ) hb_FNameSplit( cFileName, @cPath ) ENDIF nPos := 0 nErr := hb_UnzipFileFirst( hUnzip ) DO WHILE nErr == 0 nPos++ IF hb_UnzipFileInfo( hUnzip, @cZipName ) == 0 /* NOTE: As opposed to original hbziparch we don't do a second match without path. */ IF AScan( acFiles, nPos ) > 0 .OR. ; AScan( acFiles, {| cMask | hb_FileMatch( cZipName, cMask ) } ) > 0 IF hb_IsBlock( bUpdate ) Eval( bUpdate, cZipName, nPos ) ENDIF hb_UnzipExtractCurrentFile( hUnzip, cPath + cZipName, cPassword ) ENDIF ENDIF nErr := hb_UnzipFileNext( hUnzip ) ENDDO hb_UnzipClose( hUnzip ) ELSE lRetVal := .F. ENDIF RETURN lRetVal | hbziparc.prg | 929 |
FUNCTION | hb_UnzipFileIndex( ... )
FUNCTION hb_UnzipFileIndex( ... ) RETURN hb_UnzipFile( ... ) | hbziparc.prg | 993 |
FUNCTION | hb_UnzipAllFile( ... )
FUNCTION hb_UnzipAllFile( ... ) RETURN hb_UnzipFile( ... ) | hbziparc.prg | 996 |
FUNCTION | hb_ZipDeleteFiles( cFileName, acFiles )
FUNCTION hb_ZipDeleteFiles( cFileName, acFiles ) LOCAL lRetVal := .T. LOCAL cFileToProc LOCAL cExt IF Set( _SET_DEFEXTENSIONS ) hb_FNameSplit( cFileName, NIL, NIL, @cExt ) IF Empty( cExt ) cFileName += ".zip" ENDIF ENDIF IF hb_IsString( acFiles ) acFiles := { acFiles } ENDIF FOR EACH cFileToProc IN acFiles lRetVal := lRetVal .AND. hb_ZipDeleteFile( cFileName, cFileToProc ) NEXT RETURN lRetVal | hbziparc.prg | 1036 |
Page url: http://www.yourdomain.com/help/index.html?hbziparch.htm