c#プログラムが占有するファイルを削除して、強力にファイルを削除して、徹底的にファイルを削除して、ファイルの占有を解除します
2305 ワード
c#プログラムが占有するファイルを削除して、削除するファイルを整理して、徹底的にファイルを削除して、ファイルの占有を解除します
ファイルが開くと、共有読み書きモードで開きます.
ファイルの削除
ファイルが開くと、共有読み書きモードで開きます.
FileStream inputStream = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
p.BackgroundImage = new Bitmap(inputStream);
inputStream.Dispose();
ファイルの削除
public void WipeFile(string filename, int timesToWrite)
{
try
{
if (File.Exists(filename))
{
// ,
File.SetAttributes(filename, FileAttributes.Normal);
//
double sectors = Math.Ceiling(new FileInfo(filename).Length / 512.0);
//
byte[] dummyBuffer = new byte[512];
//
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
// FileStream
FileStream inputStream = new FileStream(filename, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
for (int currentPass = 0; currentPass < timesToWrite; currentPass++)
{
//
inputStream.Position = 0;
//
for (int sectorsWritten = 0; sectorsWritten < sectors; sectorsWritten++)
{
//
rng.GetBytes(dummyBuffer);
//
inputStream.Write(dummyBuffer, 0, dummyBuffer.Length);
}
}
//
inputStream.SetLength(0);
//
inputStream.Close();
//
DateTime dt = new DateTime(2037, 1, 1, 0, 0, 0);
File.SetCreationTime(filename, dt);
File.SetLastAccessTime(filename, dt);
File.SetLastWriteTime(filename, dt);
//
File.Delete(filename);
}
}
catch (Exception)
{
}
}