Desenvolvi uma rotina de BACKUP, utilizando o ARJ, e gostaria de saber se existe um comando para verificar o tamanho do arquivo compactado pelo ARJ.
grato
Verificar tamanho de arquivo
Moderador: Moderadores
Criei esta rotina para backup, você pode alterar como quiser.
Post a sua rotina como ficou.
Código: Selecionar todos
****************
Backup()
****************
LOCAL vArq
LOCAL vNum
LOCAL nBytes
LOCAL cOrigem := "C:\SISTEMA\E001.EMP\"
//
vArq := BackMov2({"*.BAT","*.DB?","*.EXE"},@nBytes,cOrigem)
vNum := 0
//
IF DISKSPACE() < nBytes
ALERT("Espa‡o Insuficiente para Efetuar o Backup;"+;
"Libere Espa‡o em Disco e Tente Novamente","OK")
RETURN NIL
END
*******************************************
STATIC FUNCTION BackMov2(aExt,nBytes,cOrigem)
// cria um vetor com os Arquivos a serem copiados
// e informa o espa‡o utilizado em bytes
****************************************
//
LOCAL i, j, aAux, aDir
//
aDir:={} // CRIANDO O ARRAY COM OS ARQUIVOS DO BACKUP
nBytes:=0
//
FOR i:=1 TO LEN(aExt)
aAux:= DIRECTORY( cOrigem+aExt[i] )
FOR j:=1 TO LEN(aAux)
AADD( aDir, aAux[j][1] ) // nome do arquivo
nBytes+= aAux[j][2] // tamanho do arquivo
END
END
//
RETURN aDir
*******************
Se vc tiver a CT.LIB ou a Nantucket v3.05, nelas tem a função FILESIZE.
Caso não as tenha tente o código abaixo:
Exemplo retirado/adaptado do NG do Clipper, funçao FSEEK().
:xau
Caso não as tenha tente o código abaixo:
Código: Selecionar todos
#include "Fileio.ch"
//
// Abrir o arquivo somente leitura (read only)
IF (nHandle := FOPEN("Temp.arj")) >= 0
//
// Pega o tamanho do arquivo
nLength := FSEEK(nHandle, 0, FS_END)
//
// Volta o ponteiro para o inicio do arquivo
FSEEK(nHandle, 0)
FCLOSE(nHandle)
ELSE
? "Erro na abertura do arquivo:", FERROR()
ENDIF
:xau
Clp52e, Blinker 5.1

