From d9db184734e28a96124472b809d6fe6c7d950e91 Mon Sep 17 00:00:00 2001 From: konekoneko Date: Sun, 29 Jul 2012 07:43:48 +0900 Subject: [PATCH] =?utf8?q?MFT=E3=81=AE=E3=83=AC=E3=82=B3=E3=83=BC=E3=83=89?= =?utf8?q?=E3=82=B5=E3=82=A4=E3=82=BA=E3=82=88=E3=82=8A=E5=B0=8F=E3=81=95?= =?utf8?q?=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AE=E3=82=BC=E3=83=AD=E3=83=95?= =?utf8?q?=E3=82=A3=E3=83=AB=E3=81=8C=E4=B8=8D=E5=AE=8C=E5=85=A8=E3=81=A0?= =?utf8?q?=E3=81=A3=E3=81=9F=E7=82=B9=E3=82=92=E4=BF=AE=E6=AD=A3=E3=81=97?= =?utf8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- CompleteEraser/FileBreaker.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/CompleteEraser/FileBreaker.cs b/CompleteEraser/FileBreaker.cs index f19ee4f..fe7f359 100644 --- a/CompleteEraser/FileBreaker.cs +++ b/CompleteEraser/FileBreaker.cs @@ -53,22 +53,35 @@ namespace CompleteEraser private static void BreakFileSlowSpeed(FileStream fs) { - byte[] data = new byte[Settings.Default.FillLengthAtHiSpeed]; + if (BreakFileInMFTArea(fs)) + return; fs.Seek(0, SeekOrigin.Begin); + byte[] data = new byte[Settings.Default.FillLengthAtHiSpeed]; for (long i = 0; i < fs.Length; i += data.Length) fs.Write(data,0,data.Length); } private static void BreakFileHiSpeed(FileStream fs) { + if (BreakFileInMFTArea(fs)) + return; fs.Seek(0, SeekOrigin.Begin); - byte[] data = new byte[Settings.Default.FillLengthAtHiSpeed]; fs.Write(data, 0, data.Length); fs.Seek(-data.Length, SeekOrigin.End); fs.Write(data, 0, data.Length); } + private static bool BreakFileInMFTArea(FileStream fs) + { + if (fs.Length >= 1024) //MFTのレコードサイズ以上か + return false; + fs.Seek(0, SeekOrigin.Begin); + byte[] data = new byte[fs.Length]; + fs.Write(data, 0, data.Length); + return true; + } + public static void BreakFolder(string folder) { IEnumerable files = Directory.GetFiles(folder, "*.*", SearchOption.AllDirectories); -- 2.11.0