Žinoma, reikia įvesti System.IO vardų sritį
Pirmasis:
viešasis statinis ilgas GetDirectoryLength(eilutė dirPath)
{ Nustatykite, ar yra nurodytas kelias, ir išvažiuokite, jei jo nėra jei (! Directory.Exists(dirPath)) grąža 0; ilgas objektyvas = 0;
//定义一个DirectoryInfo对象 DirectoryInfo di = naujas DirectoryInfo(dirPath);
Naudokite GetFiles metodą, kad gautumėte visų di kataloge esančių failų dydį foreach (FileInfo fi in di.GetFiles())
{ len += fi. Ilgis;
}
Gaukite visus aplankus di ir išsaugokite juos naujame objektų masyve rekursijai DirectoryInfo[] dis = di.GetDirectories(); jei (dis. Ilgis > 0)
{ for (int i = 0; I < dis. Ilgis; i++)
{ len += GetDirectoryLength(dis. Vardas ir pavardė);
}
} grąžinti objektyvą;
}
Antrasis
Jame taip pat naudojama rekursijos idėja, tačiau ji vertinama pagal failų klasės išėjimo metodą
//所给路径中所对应的是否为文件
viešasis statinis ilgas FileSize(eilutės failo kelias)
{ ilga temperatūra = 0;
//判断当前路径所指向的是否为文件 if (File.Exists(filePath) == false)
{ string[] str1 = Directory.GetFileSystemEntries(filePath); Foreach (eilutė S1 str1)
{ temp += Failo dydis (s1);
}
} kitaip
{
Apibrėžkite FileInfo objektą, kad susietumėte jį su failo kryptimi, kurią nurodo filePath,
//以获取其大小 FileInfo fileInfo = naujas FileInfo(filePath); grąžinti failąInfo.Length;
} grįžtamoji temperatūra;
}
Tiesą sakant, aplanko ištrynimo idėja yra tokia pati, nustatymas yra daug paprastesnis, tiesiog nuspręskite, ar tai failas, ar aplankas, jei tai failas, ištrinkite. Jei tai aplankas, jis yra rekursyvus |