DiskSpace() com problema

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

DiskSpace() com problema

Mensagem por clodoaldomonteiro »

Bom, fui testar essa função, pois tive um cliente q atingiu o limite máximo do seu HD e vi que ela tem um problema com a contant HB_DISK_TOTAL, que está fazendo com que a função retorno o espaço livre e não o total do disco.

Usando xHarbour 1.2.3 com Borland 7.3

A Sintax da função é:
- DiskSpace( [<nDrive>], [<nType>] ) --> nBytes

As contants são:
- HB_DISK_AVAIL *) = 0 - Free disk space avialable to the application -
- HB_DISK_FREE = 1 - Total free disk space
- HB_DISK_USED = 2 - Used disk space
- HB_DISK_TOTAL = 3 - Total disk space

Exemplo:

Código: Selecionar todos

// The example lists two disk storage types for all drives taking
// advantage of the runtime error created for unaccessible drives.

   #include "Fileio.ch"

   PROCEDURE Main
      LOCAL i, bError := ErrorBlock( {|e| Break(e) } )

      FOR i:=1 TO 26
         BEGIN SEQUENCE
           ? "Drive",Chr(64+i)+":", DiskSpace( i, HB_DISK_FREE ), ;
                                    DiskSpace( i, HB_DISK_TOTAL)
         RECOVER
           ?"Drive",Chr(64+i)+":", "not ready or not existent"
         END SEQUENCE
      NEXT

      ErrorBlock( bError )
   RETURN
Existe outra função para retornar os valores do Disco?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
SOSSOFT
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 23 Out 2024 10:04

DiskSpace() com problema

Mensagem por SOSSOFT »

Esse problema também ocorre no Harbour 3.2?
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

DiskSpace() com problema

Mensagem por alxsts »

Olá!

Tanto no xHarbour quanto no Harbour existe a hb_DiskSpace().

Tem outras:

DiskFree()
Returns the free storage space of a disk drive in bytes.

DiskTotal()
Returns the total storage space of a disk drive in bytes.

DiskUsed()
Returns the used storage space of a disk drive in bytes.

hb_vfDirSpace( <cDirName>, [<nInfoType>] ) ➜ nFreeSpace
Returns space info for the given <cDirName>.
If no <nInfoType> supplied it defaults to HB_DISK_AVAIL (i.e. returns available free space).
Other <nInfoType> specifiers are HB_DISK_FREE, HB_DISK_USEDand HB_DISK_TOTAL.

Faça os testes
[]´s
Alexandre Santos (AlxSts)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

DiskSpace() com problema

Mensagem por Kapiaba »

Código: Selecionar todos

// C:\FWH\SAMPLES\ESPACOHD.PRG - kapiabafwh@gmail.com

#include "FiveWin.ch"
#include "fileio.ch"

static oWnd

MEMVAR cDirPrograma

function Main()

   local oBar

   cDirPrograma := GETCURDIR()

   LCHDIR( cDirPrograma )  // LOCAL ONDE ESTA O *.EXE
   SET DEFAULT TO

   VERIFICA_HD()

   DEFINE WINDOW oWnd TITLE "VERIFICA HD"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar ACTION VER_ESPACO_HD()

   SET MESSAGE OF oWnd TO "VERIFICA HD" NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

return nil

FUNCTION VER_ESPACO_HD()

   LOCAL nSpaceDisk := hb_ntos( hb_DiskSpace() )  // DISKSPACE()

   ? Tran( nSpaceDisk, "@E 999,999,999,999,999" ) + " bytes "

   // ? "Voce Pode usar : " + hb_ntos( hb_DiskSpace() ) + " bytes "

RETURN NIL

FUNCTION VERIFICA_HD()

   LOCAL nSpaceDisk, lsucesso := .F.

   nSpaceDisk := DISKSPACE()

   IF ( DISKSPACE() < 25000000.0 )

      MsgStop( "HARD DISK FULL", "Atencion" )

   ENDIF

RETURN NIL

// FIN / END
Regards, saludos.
SOSSOFT
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 23 Out 2024 10:04

DiskSpace() com problema

Mensagem por SOSSOFT »

No Harbour 3.2 está funcionando normalmente
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

DiskSpace() com problema

Mensagem por clodoaldomonteiro »

alxsts escreveu:Olá!

Tanto no xHarbour quanto no Harbour existe a hb_DiskSpace().

...
Valeu a dica, deu todo certo agora, no xHarbour.
Abraços.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
SOSSOFT
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 23 Out 2024 10:04

DiskSpace() com problema

Mensagem por SOSSOFT »

Creio que usando hb_DiskSpace() não vai ter problemas nem no xHarbour
Responder