首页 > 代码库 > c# 删除程序占用的文件,强力删除文件,彻底删除文件,解除文件占用
c# 删除程序占用的文件,强力删除文件,彻底删除文件,解除文件占用
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) { } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。