Página 1 de 1
Espaco disponivel
Enviado: 20 Ago 2012 22:00
por Alexandre Silva
Alguem tem uma funcao para saber o espaco disponivel no HD .. ?
O memory() nao funciona 100% ,
Devo criar uma funcao, como por.exemplo:
DIR *.exe > rel.txt e ler a ultima linha do arquivo txt para saber o espaco disponivel, ou alguem tem uma solucao melhor ??
Espaco disponivel
Enviado: 20 Ago 2012 22:36
por sygecom
Usando xHarbour:
ALERT(DiskSpace('C:',1))
Usando Clipper+CA Tools
ALERT(DISKFREE('C'))
Espaco disponivel
Enviado: 20 Ago 2012 22:41
por Pablo César
Existe a função DISKFREE("C") da CT.lib, mas também não expressa a verdade. No Harbour existe hb_DiskSpace("C:",1) chega ser bem próximo da realidade, se interessar: pegue o utilitário em anexo que irá gravar o HD_Livre.txt onde contém o valor de espaço livre o qual você poderá lê-lo de dentro da sua aplicação em Clipper.
Enquanto editava e compilava o anexo, o Leonardo tinha respondido. Bom, mesma resposta e ainda aplicativo de terceiros, espero que atenda as suas expectativas.
Em Clipper você pode fazer assim:
? Val(MemoRead("HD_Livre.txt"))
O segundo parâmetro do hb_DiskSpace, podem receber as seguintes constantes:
HB_DISK_AVAIL 0 Free disk space avialable to the application (default)
HB_DISK_FREE 1 Total free disk space
HB_DISK_USED 2 Used disk space
HB_DISK_TOTAL 3 Total disk space
Portanto se precisar podemos mudar para que receba o primeiro e o segundo paramêtros (se achar necessário).
Espaco disponivel
Enviado: 27 Ago 2012 13:06
por Alexandre Silva
Obrigado..Para o Harbour ok.
Espaco disponivel
Enviado: 27 Ago 2012 14:34
por alxsts
Olá!
Alexandre Silva escreveu:O memory() nao funciona 100%
Só para não ficar a dúvida: a função Memory(nTipo) retorna a quantidade de memória disponível, por tipo.
Espaco disponivel
Enviado: 27 Ago 2012 15:10
por Jairo Maia
Olá Alexandre,
Em Clipper você pode usar assim:
Código: Selecionar todos
Function Main()
Local nSpaceDisk, nUnidade := 3
/*
Onde nUnidade 1 corresponde a A, 2 = B, 3 = C, e assim sucessivamente...
Sem parâmetro, retorna a unidade corrente.
PS: O retorno é em bytes exatamente como no comando dir, sem os separadores.
*/
nSpaceDisk := DISKSPACE()
Clear Screen
?
@ 2,2 Say Tran( nSpaceDisk, "@E 999,999,999,999,999" )
?
Return Nil
Espaco disponivel
Enviado: 27 Ago 2012 15:45
por alxsts
Olá!
Creio que o que o Alexandre Silva quis dizer é que essa função DiskSpace() retorna valores incorretos para os HDs atuais e se confundiu com Memory().
Você testou DiskSpace(), em Clipper, com HD grande Jairo?
O problema do Silva já foi resolvido mas, de qualquer forma, é sempre bom tirar dúvidas e ter outras opções.
Espaco disponivel
Enviado: 27 Ago 2012 16:16
por Jairo Maia
Xiiii... Alexandre Santos,
Dei mancada "Braba". Em HD grande nada a ver mesmo. Você tem razão, Obrigado. Somente em Harbour o resultado é correto, e não é o caso do colega.
Alexandre Silva, Desculpe cara, desconsidere meu exemplo.
Espaco disponivel
Enviado: 27 Ago 2012 16:31
por alxsts
Olá!
Mancada nada. Às vezes nos confundimos.
Então, para Clipper, fica a sugestão do Leonardo: DiskFree() da CATools. Eu não testei e não sei se realmente funciona.