Természetesen be kell vezetned System.IO névteret
Az első:
public static long GetDirectoryLength(string dirPath)
{ Határozd meg, létezik-e egy adott út, és hagyd ki, ha nem létezik ha (! Directory.Exists(dirPath)) return 0; hosszú lencs = 0;
//定义一个DirectoryInfo对象 DirectoryInfo di = new DirectoryInfo(dirPath);
Használd a GetFiles módszert, hogy megkapd az összes fájl méretét a di könyvtárban foreach (FileInfo fi in di.GetFiles())
{ len += fi. Hossz;
}
Szerezd meg az összes mappát a DI-ben, és mentsd el őket egy új objektumtömbbe rekurzióhoz DirectoryInfo[] dis = di.GetFolderies(); if (dis. Hossz > 0)
{ for (int i = 0; Nekem < ez. Hossz; i++)
{ len += GetDirectoryLength(dis. Teljes név);
}
} Return Len;
}
A második
Használja a rekurzió fogalmát is, de a Fájl osztály Kilépési módszerével ítélik meg
//所给路径中所对应的是否为文件
public static long FileSize (string filePath)
{ hosszú hőmérséklet = 0;
//判断当前路径所指向的是否为文件 if (File.Exists(filePath) == hamis)
{ string[] str1 = Directory.GetFileSystemEntries(filePath); foreach (S1 húr az STR1-ben)
{ temp += FileSize(s1);
}
} más
{
Definiáljunk egy FileInfo objektumot, hogy hozzárendeljük a filePath által mutatott fájlirányhoz,
//以获取其大小 FileInfo fileInfo = új FileInfo(filePath); return fileInfo.Length;
} visszafelé irányuló hőmérséklet;
}
Valójában a mappa törlésének gondolata is ugyanaz, mint ez, a beállítás sokkal egyszerűbb: egyszerűen ítéld meg, hogy fájl-e vagy mappá, ha fájl, töröld el. Ha egy mappáról van szó, akkor rekurzív |