Samozrejme, musíte zaviesť System.IO menný priestor
Prvá:
public static long GetDirectoryLength(string dirPath)
{ Zistite, či daná cesta existuje, a ukončite ju, ak nie je ak (! Directory.Exists(dirPath)) return 0; long len = 0;
//定义一个DirectoryInfo对象 DirectoryInfo di = nový DirectoryInfo(dirPath);
Použite metódu GetFiles na získanie veľkosti všetkých súborov v di adresári foreach (FileInfo fi in di.GetFiles())
{ len += fi. Dĺžka;
}
Získaj všetky priečinky z di a ulož ich do nového poľa objektov na rekurziu DirectoryInfo[] dis = di.GetDirectories(); ak (dis. Dĺžka > 0)
{ pre (int i = 0; Ja som < to. Dĺžka; i++)
{ len += GetDirectoryLength(dis. FullName);
}
} vrátiť len;
}
Druhý
Používa tiež myšlienku rekurzie, ale hodnotí sa metódou Exits triedy File
//所给路径中所对应的是否为文件
public static long FileSize(string filePath)
{ dlhá teplota = 0;
//判断当前路径所指向的是否为文件 if (File.Exists(filePath) == false)
{ string[] str1 = Directory.GetFileSystemEntries(filePath); foreach (reťazec s1 v str1)
{ temp += FileSize(s1);
}
} else
{
Definujte objekt FileInfo, ktorý ho priradí k smeru súboru, na ktorý smeruje filePath,
//以获取其大小 FileInfoFileInfo = nový FileInfo(filePath); return fileInfo.Length;
} návratová teplota;
}
V skutočnosti je myšlienka vymazania priečinka rovnaká ako táto, nastavenie je oveľa jednoduchšie, stačí posúdiť, či je to súbor alebo priečinok, ak je to súbor, vymažte ho. Ak je to priečinok, je rekurzívny |