Napisałem program do obliczania rozmiaru folderu i się kompiluje ale jak biorę na obliczenie rozmiaru dysku np. D:\ to wywala ze NIE MA dostępu "UnauthorizedAccessException" wyrzuca na folderze System Volume Information. Jak poprawić program żeby omijało to. Kombinowałem z usuwaniem wpisu z tablicy tego folderu ale wtedy wywala na obliczaniu rozmiaru plików.
Chętnie posłucham sugestii.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.IO;
using System.Security;
using System.Security.Permissions;
namespace prog
{
class Program
{
static void Main()
{
Console.WriteLine("Rozmiar folderu wynosi:");
string zaczyn = @"D:\";
rozmiar.Rozmiar(zaczyn);
float obli = dane.mb / 1024;
obli = obli / 1024;
Console.WriteLine(obli);
Console.Read();
}
}
public class rozmiar
{
static public void Rozmiar(string sciezka)
{
dane.mb = 0;
rozmiar.pfol(sciezka);
rozmiar.Lokalizacje(sciezka);
}
static public void pfol(string p)
{
try
{
string[] a = Directory.GetFiles(p, "*.*");
long b = 0;
foreach (string name in a)
{
FileInfo info = new FileInfo(name);
b += info.Length;
}
dane.mb += b;
}
catch(UnauthorizedAccessException e){}
}
static public void Lokalizacje(string patch)
{
try
{
string[] lok = Directory.GetDirectories(patch);
foreach (string szuk in lok)
{
pfol(szuk);
Lokalizacje(szuk);
}
}
catch(UnauthorizedAccessException e){}
}
}
public class dane
{
public static long mb;
}
}