程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c# 刪除程序占用的文件,強力刪除文件,徹底刪除文件,解除文件占用

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)
            {
            }
        }


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved