Ir ao conteúdo

Programa que leia e mostre o espaço livre em disco


Pablo Magalhães Alves

Posts recomendados

Postado

Olá

 

Gostaria de saber como escrever um programa em C que dê suporte ao título que dei.

 

Um programa simples no qual o usuário entraria com a partição desejada que ele quisesse verificar e retornava o espaço livre nesta unidade.

 

Muito Obrigado!
Forte Abraço!

Pablo Alves

Postado

Olá Pablo, tal se fazer isto, você pode usar WinAPI, mais especificamente a função GetDiskFreeSpaceEx, eu fiz a "base" pra você, veja:

#include <iostream>#include <windows.h>using namespace std;int main(){    unsigned __int64 TotalBytes, FreeBytes;    GetDiskFreeSpaceEx ("C:\\",                       NULL,                       (PULARGE_INTEGER)&TotalBytes,                       (PULARGE_INTEGER)&FreeBytes);    float fLivre = FreeBytes/(float)1073741824;    float fTotal = TotalBytes/(float)1073741824;    cout << "Espaco Livre(GB) : " << fLivre << endl;    cout << "Espaco Total(GB) : " << fTotal << endl;    return 0;}

Quanto aquele número estranho : 1073741824, trata-se da conversão de Bytes para GigaBytes, 1GB = 1073741824 bytes. É necessário pois a função retorna o espaço em Bytes.

 

Lembrando que fiz o programa funcionar corretamente aqui, você vai ter que edita-lo e adapta-lo a sua necessidade.

 

Apenas para complementar, por estranho que pareça o meu resultado não foi uma float mas sim um int, talvez seja algo errado que fiz na conversão, caso percebam tal erro, favor avisar.

 

Abraços.

Postado

@DolbyCpp
 
você recebeu um INT porque você dividiu um INT por outro INT:

float fLivre = FreeBytes/1073741824;

 
o q você tem que fazer para receber um float desda divisão é isto:

float fLivre = FreeBytes/(float)1073741824;

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...