none
DriveInfo não está funcionando corretamente RRS feed

  • Pergunta

  • Boa noite, 

    Hoje enquanto usava o DriveInfo para obter as informações acerca do meu Disco, como a quantidade de armazenamento disponível e total verifiquei que este método não está a indicar essas informações corretamente e eu não consigo compreender porquê. 

    Este é o código que estou a usar: 

    DriveInfo DInfo = new DriveInfo(Directory.GetDirectoryRoot(Environment.GetEnvironmentVariable("windir")))

    int DTotal = (int)(DInfo.TotalSize); int DLivre = (int)(DInfo.AvailableFreeSpace); MessageBox.Show(DInfo.VolumeLabel);

    MessageBox.Show("Armazenamento total: " + DTotal); MessageBox.Show("Armazenamento Livre: " + DLivre);

    Os valores que as MessageBox retornam são absurdos, neste caso retornam como Armazenamento total 840 Mb e como Armazenamento Livre 54 Mb.

    Alguém sabe onde poderá estar o erro ? 

    Obrigado,


    sexta-feira, 29 de junho de 2018 23:06

Respostas

  • As propriedades TotalSize e AvailableFreeSpace retornam um long, pois representam quantidade em bytes.

    Necessário dividir o retorno delas 3 vezes por 1024 para informar as capacidades em GBs.

    2 vezes por 1024 para informar em MBs, etc...

                DriveInfo DInfo = new DriveInfo(Directory.GetDirectoryRoot(Environment.GetEnvironmentVariable("windir")));
                long DTotal = (DInfo.TotalSize) / 1024 / 1024 / 1024;
                long DLivre = (DInfo.AvailableFreeSpace) / 1024 / 1024 / 1024;
                MessageBox.Show(DInfo.VolumeLabel);
                MessageBox.Show("Armazenamento total: " + DTotal);
                MessageBox.Show("Armazenamento Livre: " + DLivre);



    sábado, 30 de junho de 2018 01:17

Todas as Respostas

  • As propriedades TotalSize e AvailableFreeSpace retornam um long, pois representam quantidade em bytes.

    Necessário dividir o retorno delas 3 vezes por 1024 para informar as capacidades em GBs.

    2 vezes por 1024 para informar em MBs, etc...

                DriveInfo DInfo = new DriveInfo(Directory.GetDirectoryRoot(Environment.GetEnvironmentVariable("windir")));
                long DTotal = (DInfo.TotalSize) / 1024 / 1024 / 1024;
                long DLivre = (DInfo.AvailableFreeSpace) / 1024 / 1024 / 1024;
                MessageBox.Show(DInfo.VolumeLabel);
                MessageBox.Show("Armazenamento total: " + DTotal);
                MessageBox.Show("Armazenamento Livre: " + DLivre);



    sábado, 30 de junho de 2018 01:17
  • Isso resolveu o problema André,

    Obrigado.





    sábado, 30 de junho de 2018 11:58