幫助文件複製到完成所有文件和文件夾的彌補,並把它們複製到文件夾,你需要做的,以限制該文件夾爲100MB與100MB的限制
如何製作的一個常數檢查捲上的文件夾爲100MB,如果文件夾中的文件超出限制,則完成複製。
public static void GetFilesList()
{
long DS = 1000000;
string[] extens =
{
".txt", ".doc",
".cs", ".ico",
".Dll", ".Html",
".Htm", ".Xml",
".Php", ".png",
".jpg", ".gif"
};
if (DirSize(new DirectoryInfo(Easy.GooVer), DS) > DS)
{
foreach (string fileName in Directory.GetFiles(Easy.GooVer, "*.*", SearchOption.AllDirectories))
{
string ext = Path.GetExtension(fileName);
if (Array.IndexOf(extens, ext) >= 0)
{ try{
File.Copy(fileName, Path.Combine(Easy.str1, Path.GetFileName(fileName)), true);}catch { }
}
}
}
}
public static long DirSize(DirectoryInfo d, long aLimit = 0)
{
long Size = 0;
FileInfo[] fis = d.GetFiles();
foreach (FileInfo fi in fis)
{
Size += fi.Length;
if (aLimit > 0 && Size > aLimit)
return Size;
}
DirectoryInfo[] dis = d.GetDirectories();
foreach (DirectoryInfo di in dis)
{
Size += DirSize(di, aLimit);
if (aLimit > 0 && Size > aLimit)
return Size;
}
return (Size);
}
P.S:我使用的是.Net 2.0,我不想使用Linq。
你一定會移到您的來電DirSize到循環的內部?雖然不知道你正在問什麼。幾乎感覺像一個作業問題 – Darren
DirSize我分配GetFilesList,嘗試添加'while(true)',但沒有幫助。 – GooliveR