zoukankan      html  css  js  c++  java
  • 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)
                {
                }
            }


  • 相关阅读:
    econtrol窗体设计器
    脚本引擎注册将要使用的类,属性,方法,函数
    FastReport开发手册
    控制钱箱,客显,打印
    Laravel渴求式加载(比较容易理解理解load与with关系)
    50分钟学会Laravel 50个小技巧(基于laravel5.2,仅供参考)
    日期选择器date、week、time、datetime、datetimelocal类型
    input type=date时,时间数据回填,报错The specified value "2019040418" does not conform to the required format...
    Laravel技巧:使用load、with预加载 区别
    arcengine,C#实现分页打印预览
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7093600.html
Copyright © 2011-2022 走看看