\r
private static void BreakFileSlowSpeed(FileStream fs)\r
{\r
- byte[] data = new byte[Settings.Default.FillLengthAtHiSpeed];\r
+ if (BreakFileInMFTArea(fs))\r
+ return;\r
fs.Seek(0, SeekOrigin.Begin);\r
+ byte[] data = new byte[Settings.Default.FillLengthAtHiSpeed];\r
for (long i = 0; i < fs.Length; i += data.Length)\r
fs.Write(data,0,data.Length);\r
}\r
\r
private static void BreakFileHiSpeed(FileStream fs)\r
{\r
+ if (BreakFileInMFTArea(fs))\r
+ return;\r
fs.Seek(0, SeekOrigin.Begin);\r
-\r
byte[] data = new byte[Settings.Default.FillLengthAtHiSpeed];\r
fs.Write(data, 0, data.Length);\r
fs.Seek(-data.Length, SeekOrigin.End);\r
fs.Write(data, 0, data.Length);\r
}\r
\r
+ private static bool BreakFileInMFTArea(FileStream fs)\r
+ {\r
+ if (fs.Length >= 1024) //MFTのレコードサイズ以上か\r
+ return false;\r
+ fs.Seek(0, SeekOrigin.Begin);\r
+ byte[] data = new byte[fs.Length];\r
+ fs.Write(data, 0, data.Length);\r
+ return true;\r
+ }\r
+\r
public static void BreakFolder(string folder)\r
{\r
IEnumerable<string> files = Directory.GetFiles(folder, "*.*", SearchOption.AllDirectories);\r