Protams, jums ir jāievieš System.IO nosaukumu telpa
Pirmais:
publiskais statiskais garš GetDirectoryLength(virkne dirPath)
{ Nosakiet, vai konkrētais ceļš pastāv, un izejiet, ja tā nav. ja (! Direktorijs.Eksistē(dirPath)) atgriešanās 0; garš lens = 0;
//定义一个DirectoryInfo对象 DirectoryInfo di = jauns DirectoryInfo(dirPath);
Izmantojiet GetFiles metodi, lai iegūtu visu failu lielumu di direktorijā foreach (FileInfo fi in di.GetFiles())
{ len += fi. Garums;
}
Iegūstiet visas di mapes un saglabājiet tās jaunā objektu masīvā rekursijai DirectoryInfo[] dis = di.GetDirectories(); ja (dis. Garums > 0)
{ for (int i = 0; Es < dis. Garums; i++)
{ len += GetDirectoryLength(dis. Pilns vārds);
}
} atgriezt objektīvu;
}
Otrais
Tajā tiek izmantota arī rekursijas ideja, bet to vērtē pēc failu klases izejas metodes
//所给路径中所对应的是否为文件
publisks statisks garš FileSize(virkne filePath)
{ garā temperatūra = 0;
//判断当前路径所指向的是否为文件 if (File.Exists(filePath) == false)
{ string[] str1 = Directory.GetFileSystemEntries(filePath); foreach (virkne S1 str1)
{ temp += FileSize (s1);
}
} citādi
{
Definējiet FileInfo objektu, lai saistītu to ar faila virzienu, uz kuru norāda filePath,
//以获取其大小 FileInfo fileInfo = jauns FileInfo(filePath); atgriezt failu Info.Length;
} atgriešanās temperatūra;
}
Faktiski ideja par mapes dzēšanu ir tāda pati kā šī, iestatījums ir daudz vienkāršāks, vienkārši spriediet, vai tas ir fails vai mape, ja tas ir fails, izdzēsiet to. Ja tā ir mape, tā ir rekursīva |