ඕනෑම තැටියක හෝ නාමාවලියක පිළිකා සොයා ගැනීම සඳහා ගැඹුරු නියැදි භාවිතා කරන ඉතා කුඩා යෙදුමක් මෙන්න. එය ඩිරෙක්ටරි ගස දෙවරක් ඇවිදින අතර, වරක් එය මැනීමටත්, දෙවන වරට ඩිරෙක්ටරිය යටතේ "අහඹු" බයිට් 20 ක් සඳහා මාර්ග මුද්රණය කිරීමටත් සිදුවේ.
void walk(string sDir, int iPass, int64& n, int64& n1, int64 step){
foreach(string sSubDir in sDir){
walk(sDir + "/" + sSubDir, iPass, n, n1, step);
}
foreach(string sFile in sDir){
string sPath = sDir + "/" + sFile;
int64 len = File.Size(sPath);
if (iPass == 2){
while(n1 <= n+len){
print sPath;
n1 += step;
}
}
n += len;
}
}
void dscan(){
int64 n = 0, n1 = 0, step = 0;
// pass 1, measure
walk(".", 1, n, n1);
print n;
// pass 2, print
step = n/20; n1 = step/2; n = 0;
walk(".", 2, n, n1);
print n;
}
මගේ වැඩසටහන් ගොනු නාමාවලිය සඳහා ප්රතිදානය මේ ආකාරයට පෙනේ:
7,908,634,694
.\ArcSoft\PhotoStudio 2000\Samples\3.jpg
.\Common Files\Java\Update\Base Images\j2re1.4.2-b28\core1.zip
.\Common Files\Wise Installation Wizard\WISDED53B0BB67C4244AE6AD6FD3C28D1EF_7_0_2_7.MSI
.\Insightful\splus62\java\jre\lib\jaws.jar
.\Intel\Compiler\Fortran\9.1\em64t\bin\tselect.exe
.\Intel\Download\IntelFortranProCompiler91\Compiler\Itanium\Data1.cab
.\Intel\MKL\8.0.1\em64t\bin\mkl_lapack32.dll
.\Java\jre1.6.0\bin\client\classes.jsa
.\Microsoft SQL Server\90\Setup Bootstrap\sqlsval.dll
.\Microsoft Visual Studio\DF98\DOC\TAPI.CHM
.\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\sqlce20sql2ksp1.exe
.\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\docs\Partition II Metadata.doc
.\Microsoft Visual Studio .NET 2003\Visual Studio .NET Enterprise Architect 2003 - English\Logs\VSMsiLog0A34.txt
.\Microsoft Visual Studio 8\Microsoft Visual Studio 2005 Professional Edition - ENU\Logs\VSMsiLog1A9E.txt
.\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\wce500\mipsiv\NETCFv2.wce5.mipsiv.cab
.\Microsoft Visual Studio 8\VC\ce\atlmfc\lib\armv4i\UafxcW.lib
.\Microsoft Visual Studio 8\VC\ce\Dll\mipsii\mfc80ud.pdb
.\Movie Maker\MUI\0409\moviemk.chm
.\TheCompany\TheProduct\docs\TheProduct User's Guide.pdf
.\VNI\CTT6.0\help\StatV1.pdf
7,908,634,694
එය මට පවසන්නේ නාමාවලිය 7.9gb වන අතර එයින්
- ~ 15% ඉන්ටෙල් ෆෝට්රාන් සම්පාදකයා වෙත යයි
- ~ 15% VS .NET 2003 වෙත යයි
- ~ 20% VS 8 වෙත යයි
මේවායින් කිසිවක් මුදා හැරිය හැකිදැයි විමසීමට තරම් සරල ය.
එය ගොනු පද්ධතිය හරහා බෙදා හරින ගොනු වර්ග ගැන ද කියයි, නමුත් එකට ගත් විට අවකාශය ඉතිරි කිරීමේ අවස්ථාවක් නිරූපණය කරයි:
- % 15% දළ වශයෙන් .cab සහ .MSI ගොනු වෙත යයි
- ~ 10% දළ වශයෙන් පෙළ ලිපිගොනු ලොග් වීමට යයි
"ස්මාර්ට් ඩෙවිස්" සහ "සී" සහය (~ 15%) වැනි මට නොමැතිව කළ හැකි වෙනත් බොහෝ දේ එහි තිබේ.
එය රේඛීය කාලයක් ගත වේ, නමුත් එය බොහෝ විට කළ යුතු නොවේ.
එය සොයාගත් දේවල් සඳහා උදාහරණ:
- බොහෝ සුරකින ලද කේත ගබඩාවල ඩීඑල්එල් වල උපස්ථ පිටපත්, සැබවින්ම සුරැකීමට අවශ්ය නොවේ
- අපැහැදිලි නාමාවලියක් යටතේ සේවාදායකයේ යමෙකුගේ දෘ drive තැටියේ උපස්ථ පිටපතක්
- විශාල තාවකාලික අන්තර්ජාල ලිපිගොනු
- පුරාණ ලේඛනය සහ උපකාරක ලිපිගොනු දිගු කලක් අවශ්ය විය