Página 1 de 1

Verificar tamanho de arquivo

Enviado: 16 Dez 2005 13:50
por jpalma
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

Enviado: 16 Dez 2005 22:52
por evaldo
Criei esta rotina para backup, você pode alterar como quiser.

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
*******************
Post a sua rotina como ficou.

Enviado: 16 Dez 2005 23:00
por C Leonam
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:

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

Exemplo retirado/adaptado do NG do Clipper, funçao FSEEK().

:xau

Enviado: 19 Dez 2005 08:55
por jpalma
Obrigado Leonam.


sds