Muidugi tuleb System.IO nimeruumi sisse viia
Esimene:
public static long GetDirectoryLength(string dirPath)
{ Määra, kas konkreetne tee eksisteerib, ja välju, kui seda ei ole. kui (! Directory.Exists(dirPath)) tagasitulek 0; pikk lenn = 0;
//定义一个DirectoryInfo对象 DirectoryInfo di = uus DirectoryInfo(dirPath);
Kasuta GetFiles meetodit, et saada kõigi di kataloogi failide suurus foreach (FileInfo fi in di.GetFiles())
{ len += fi. Pikkus;
}
Hangi kõik kaustad DI-st ja salvesta need uude objektide massiivi rekursiooniks DirectoryInfo[] dis = di.GetDirectories(); if (dis. Pikkus > 0)
{ for (int i = 0; Ma < seda. Pikkus; i++)
{ len += GetDirectoryLength(dis. Täisnimi);
}
} Return Len;
}
Teine
See kasutab ka rekursiooni ideed, kuid seda hinnatakse failiklassi Exits-meetodi järgi
//所给路径中所对应的是否为文件
public static long FileSize (string filePath)
{ pikk temperatuur = 0;
//判断当前路径所指向的是否为文件 if (File.Exists(filePath) == väär)
{ string[] str1 = Directory.GetFileSystemEntries(filePath); foreach (string S1 Str1-s)
{ temp += FileSize(s1);
}
} else
{
Defineeri FileInfo objekt, mis seostab selle faili suunaga, millele filePath osutab,
//以获取其大小 FileInfo fileInfo = uus FileInfo(filePath); return fileInfo.Pikkus;
} tagasivoolu temperatuur;
}
Tegelikult on kausta kustutamise idee sama, seade on palju lihtsam, lihtsalt otsusta, kas see on fail või kaust, kui see on fail, kustuta see. Kui see on kaust, on see rekursiivne |