Página 1 de 1

Problemas com a filesize()

Enviado: 17 Fev 2016 22:12
por cjp
Pessoal,

Estou tendo um problema estranho com a função filesize(). Ela está retornando -1 ou -11, mesmo quando o tamanho do arquivo está correto, com cerca de 1 MB. Já testei com vários arquivos.

Noto que isto só está ocorrendo com arquivos que não são .dbf. Quando testo com .dbf, funciona corretamente.

Será que a filesize() só funciona com .dbf?

Problemas com a filesize()

Enviado: 17 Fev 2016 22:42
por rmlazzari
Quando precisei, fiz assim:

Código: Selecionar todos

abc := directory('arquivo.txt')
tamanho := abc[1][2] // em bytes

Problemas com a filesize()

Enviado: 18 Fev 2016 00:06
por cjp
Aqui tá dando "Error BASE/1132 Erro de limite: acesso de array" na linha tamanho := abc[1][2] // em bytes.

Problemas com a filesize()

Enviado: 18 Fev 2016 00:42
por fladimir
Eu uso aki com arquivos sem ser DBF e funciona bem.

Vc usa Harbour ou xHarbour?

Posta um exemplo de como esta fazendo..

Problemas com a filesize()

Enviado: 18 Fev 2016 01:08
por JoséQuintas
CJP... acho que esqueceu do básico

Código: Selecionar todos

abc := directory('arquivo.txt') 
Isso retorna um array com as informações do arquivo.txt, mas somente se ele existir, senão retorna um array vazio, que é o que deve ter acontecido.
ao acessar o elemento 1, que não existe, deu esse erro.

Código: Selecionar todos

oFiles := Directory( "arquivo.txt" )
IF Len( oFiles ) == 0
   ? "Não existe o arquivo"
ELSE
   ? oFiles[ 1, 2 ]
ENDIF

Problemas com a filesize()

Enviado: 18 Fev 2016 01:12
por JoséQuintas
Achei isto, confirme.

http://harbour.edu.pl/lib/tools/ng98d54.html

Mas dá pra ver que os exemplos estão furados.

Problemas com a filesize()

Enviado: 18 Fev 2016 01:27
por rmlazzari
Ou ainda... pretaportê, rs...

Código: Selecionar todos

FUNCTION Fsize(cArq)

loca aDir := Directory(cArq)

Return iif ( Len (aDir) == 0, -1, aDir [1,2])
:)Pos

Problemas com a filesize()

Enviado: 18 Fev 2016 02:10
por cjp
Realmente, meu caro Quintas, comi bola ao não lembrar que o arquivo está em pasta diferente da do programa.

Obrigado. Agora funcionou.

E agora eu vi que também estava comendo bola na filesize, da mesma forma. Corrigi e ela também funcionou. Obrigado a todos.