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

  

轉載自http://blog.csdn.net/pigkeli/article/details/28877279?utm_source=tuicool


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM