欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现安全删除文件目录的方法

程序员文章站 2023-01-22 15:14:28
本文实例讲述了c#实现安全删除文件目录的方法。分享给大家供大家参考。具体分析如下: 1. 创建文件夹 (简单,没多考虑) 2. 删除所建文件夹:为防止删除过程中有其他进...

本文实例讲述了c#实现安全删除文件目录的方法。分享给大家供大家参考。具体分析如下:

1. 创建文件夹 (简单,没多考虑)

2. 删除所建文件夹:为防止删除过程中有其他进程引用该文件夹中文件,增加了对此意外情况的考虑。

在本例中,若删除过程中被其他进程引用,等待并循环5次尝试再次删除操作。长时间无法被删除,则删除文件目录失败

using system;
using system.io;
namespace retry
{
 class program
 {
 static void main(string[] args)
 {
  directoryinfo dirinfo = directory.createdirectory(@"c:\testdir");
  string foldername = system.environment.getfolderpath(environment.specialfolder.applicationdata) + "\\testdir";
  if (!directory.exists(foldername))
  {
  directory.createdirectory(foldername);
  console.writeline("{0} created! ",foldername);
  }
  int retrytimes = 1;
  do
  {
  if (directory.exists(foldername))
  {
   try
   {
   console.writeline("tring to delete file the {0} time.",retrytimes);
   directory.delete(foldername, true);
   console.writeline("deleting file successfully.");
   break;
   }
   catch (ioexception ex)
   {
   console.writeline("exception! ", ex.tostring());
   console.writeline("sleep 5 seconds and retry.");
   system.threading.thread.sleep(5000);
   retrytimes++;
   }
  }
  else
  {
   console.writeline("delete folder successfully");
   break;
  }
  } while (retrytimes <= 5);
  if (directory.exists(foldername))
  console.writeline("deleting folder failed.");
  console.writeline("done");
  console.readkey();
 }
 }
}

希望本文所述对大家的c#程序设计有所帮助。