ディープサンプリングを使用して、任意のディスクまたはディレクトリ内の腫瘍を見つける小さなアプリを次に示します。ディレクトリツリーを2回歩き、1回はそれを測定し、2回目はディレクトリの下の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;
}
Program Filesディレクトリの出力は次のようになります。
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%はインテルFortranコンパイラーに送られます
- 〜15%がVS .NET 2003になります
- 〜20%がVS 8になります
これらのいずれかをアンロードできるかどうかを尋ねるのは簡単です。
また、ファイルシステム全体に分散しているファイルタイプについても説明しますが、一緒に使用すると、スペースを節約できる可能性があります。
- 〜15%は、おおよそ.cabおよび.MSIファイルになります
- 〜10%は、おおよそテキストファイルのログ記録に使用されます
「SmartDevices」や「ce」のサポート(〜15%)のように、おそらくなくてもできることもたくさんあります。
直線的な時間がかかりますが、頻繁に行う必要はありません。
見つかったものの例:
- ない多く保存されたコードリポジトリ内のDLLのバックアップコピー本当に保存する必要があります
- あいまいなディレクトリの下にある、サーバー上の誰かのハードドライブのバックアップコピー
- 膨大なインターネット一時ファイル
- 昔のドキュメントとヘルプファイルが必要な長い過去