Espaco disponivel

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Espaco disponivel

Mensagem 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 ??
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Espaco disponivel

Mensagem por sygecom »

Usando xHarbour:
ALERT(DiskSpace('C:',1))

Usando Clipper+CA Tools
ALERT(DISKFREE('C'))
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Espaco disponivel

Mensagem 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).
Anexos
HDFreeSpace.rar
(374.44 KiB) Baixado 216 vezes
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Espaco disponivel

Mensagem por Alexandre Silva »

Obrigado..Para o Harbour ok.
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Espaco disponivel

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Espaco disponivel

Mensagem 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
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Espaco disponivel

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Espaco disponivel

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Espaco disponivel

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Responder