Tietenkin sinun täytyy ottaa käyttöön System.IO nimiavaruus
Ensimmäinen:
julkinen staattinen pitkä GetDirectoryLength(merkkijono, dirPath)
{ Selvitä, onko tietty polku olemassa, ja poistu, jos ei ole. jos (! Directory.Exists(dirPath)) palautus 0; pitkä lenssi = 0;
//定义一个DirectoryInfo对象 DirectoryInfo di = uusi DirectoryInfo(dirPath);
Käytä GetFiles-menetelmää saadaksesi kaikkien di-kansion tiedostojen koon foreach (FileInfo fi in di.GetFiles())
{ len += fi. Pituus;
}
Ota kaikki kansiot DI:stä ja tallenna ne uuteen objektitaulukkoon rekursiota varten DirectoryInfo[] dis = di.GetDirectories(); if (dis. Pituus > 0)
{ kun (int i = 0; Minä < sen. Pituus; i++)
{ len += GetDirectoryLength(dis. Koko nimi);
}
} Return Len;
}
Toinen
Se käyttää myös rekursion ideaa, mutta sitä arvioidaan File-luokan Exit-menetelmällä
//所给路径中所对应的是否为文件
julkinen staattinen pitkä FileSize(merkkijono, filePath)
{ pitkä lämpötila = 0;
//判断当前路径所指向的是否为文件 if (File.Exists(filePath) == false)
{ string[] str1 = Directory.GetFileSystemEntries(filePath); foreach (merkkijono S1 STR1:ssä)
{ temp += FileSize(s1);
}
} else
{
Määrittele FileInfo-objekti, joka liitetään tiedoston suuntaan, johon filePath osoittaa,
//以获取其大小 FileInfo fileInfo = uusi FileInfo(filePath); return fileInfo.Length;
} paluulämpötila;
}
Itse asiassa kansion poistamisen idea on sama kuin tämä, asetus on paljon yksinkertaisempi, arvioi vain, onko se tiedosto vai kansio, jos se on tiedosto, poista se. Jos kyseessä on kansio, se on rekursiivinen |