c# 删除程序占用的文件。清理删除文件。彻底删除文件,解除文件占用

文件打开时,以共享读写模式打开

  1. FileStream inputStream = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
  2. p.BackgroundImage = new Bitmap(inputStream);
  3. inputStream.Dispose();

删除文件

  1. public void WipeFile(string filename, int timesToWrite)
  2.         {
  3.             try
  4.             {
  5.                 if (File.Exists(filename))
  6.                 {
  7.                     //设置文件的属性为正常,这是为了防止文件是仅仅读
  8.                     File.SetAttributes(filename, FileAttributes.Normal);
  9.                     //计算扇区数目
  10.                     double sectors = Math.Ceiling(new FileInfo(filename).Length / 512.0);
  11.                     // 创建一个相同大小的虚拟缓存
  12.                     byte[] dummyBuffer = new byte[512];
  13.                     // 创建一个加密随机数目生成器
  14.                     RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
  15.                     // 打开这个文件的FileStream
  16.                     FileStream inputStream = new FileStream(filename, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
  17.                     for (int currentPass = 0; currentPass < timesToWrite; currentPass++)
  18.                     {
  19.                         // 文件流位置
  20.                         inputStream.Position = 0;
  21.                         //循环全部的扇区
  22.                         for (int sectorsWritten = 0; sectorsWritten < sectors; sectorsWritten++)
  23.                         {
  24.                             //把垃圾数据填充到流中
  25.                             rng.GetBytes(dummyBuffer);
  26.                             // 写入文件流中
  27.                             inputStream.Write(dummyBuffer, 0, dummyBuffer.Length);
  28.                         }
  29.                     }
  30.                     // 清空文件
  31.                     inputStream.SetLength(0);
  32.                     // 关闭文件流
  33.                     inputStream.Close();
  34.                     // 清空原始日期须要
  35.                     DateTime dt = new DateTime(2037, 1, 1, 0, 0, 0);
  36.                     File.SetCreationTime(filename, dt);
  37.                     File.SetLastAccessTime(filename, dt);
  38.                     File.SetLastWriteTime(filename, dt);
  39.                     // 删除文件
  40.                     File.Delete(filename);
  41.                 }
  42.             }
  43.             catch (Exception)
  44.             {
  45.             }
  46.         }

c# 删除程序占用的文件,强力删除文件,彻底删除文件,解除文件占用的更多相关文章

  1. 一个将当前目录下HEX文件的第一行数据删除的程序

    为什么要写这样一个函数 在使用SoftConsole开发M3程序时,生成的hex文件,必须要把第一行数据删除,才能在Libero中使用,所以写了这个小工具,这是2.0版本了,第一版是直接删除第一行数据 ...

  2. Windows下强制删除文件或文件夹(解除文件占用/Unlock)

    前言 在windows下,有时候会碰到一些文件无法删除,尽量使用“管理员取得所有权” ,但文件或文件夹依然无法删除,这一点非常苦恼. 本文记录几款可以解锁文件占用的软件. ProcessHacker ...

  3. Inno setup 卸载时删除程序文件夹(文件)

    Inno setup 卸载时删除程序文件夹(文件) //删除所有配置文件以达到干净卸载的目的 procedure CurUninstallStepChanged(CurUninstallStep: T ...

  4. winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

    在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉.比如卸载.分享一个比较简单实现. 思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除 ...

  5. iOS 文件和数据管理 (可能会删除本地文件储存)

    转自:http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgramm ...

  6. NO21 Llinux的文件种类与扩展名--文件权限--软硬链接--Linux删除文件原理

    Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内 ...

  7. 如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?

    如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?原文链接:http://www.java2class.net/bbs/viewthr ...

  8. C#删除程序自身【总结】

    偶然看到一个可以自删除的程序,于是了解下如何实现.然后整理如下: 思路: 在.NET程序中,因为运行中的程序是受系统保护的,不能自己删除自身的,所以自删除的思路:  在关闭本程序之前启动新的进程打开另 ...

  9. Linux_文件及文件夹[创建][复制][移动][删除][重命名]

    一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语   法: touch [-acfm][-d <日期时间>][-r <参考文件或目 录&g ...

随机推荐

  1. IE9的F12工具,"网络"页签,点击"开始捕获"之后,请求显示的状态是"挂起"的分析和解决

    最近一个项目,客户端使用用jQuery编写ajax请求,服务端采用struts2框架.js发送请求和action处理请求过程中,遇到一个问题.刚开始觉得问题很诡异,仔细定位很久之后才发现问题,虽然问题 ...

  2. dubbo之令牌验证

    防止消费者绕过注册中心访问提供者 在注册中心控制权限,以决定要不要下发令牌给消费者 注册中心可灵活改变授权方式,而不需修改或升级提供者 可以全局设置开启令牌验证 <!--随机token令牌,使用 ...

  3. 【转载】HTTP 基础与变迁

    原文地址:https://segmentfault.com/a/1190000006689489 HTTP HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于 ...

  4. CSS固定布局:960GS

    960栅格系统 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  5. rxswift-self.usernameTF.rx.text.orEmpty.map

    self.usernameTF.rx.text.orEmpty.map 一堆类型转化+数据处理的操作 self.usernameTF.rx:将textfiled用Reactive封装: .text:监 ...

  6. mysqlconnector将EXCEL表数据导入数据库

    测试excel和脚本放在同一个目录 测试excel和脚本放在同一个目录 #!/usr/bin/env python #coding=utf-8 import xlrd import mysql.con ...

  7. cstringlist不完全用法

    CStringList是CString链表,在MFC编程中STL之外的另一选择,用起来更加简洁. 插入数据:AddTail();AddHead() 删除数据:RemoveAll();RemoveAt( ...

  8. golang bytes 包

    类型 []byte 的切片十分常见,Go 语言有一个 bytes 包专门用来解决这种类型的操作方法. bytes 包和字符串包十分类似.而且它还包含一个十分有用的类型 Buffer: import & ...

  9. Django - ORM创建基本类

    DBFirst CodeFirst 创建类 1.根据类自动创建数据库表 在app下的models.py中创建表 创建数据库之前,需要在django下的setting.py模块中的INSTALLED_A ...

  10. hbase + phoenix 单机版安装

    1. 环境: centos 6.5 jdk 1.8.0                                                 http://www.oracle.com/te ...