| 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