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

本文实例讲述了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#程序设计有所帮助。

(0)

相关推荐

  • C#实现Zip压缩目录中所有文件的方法

    本文实例讲述了C#实现Zip压缩目录中所有文件的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; using System.Collections; using System.IO.Compression; using System.Collections.Generic; class FolderZip { private const long BUFFER_SIZE = 20480; static void main(string[

  • C#遍历指定目录下所有文件的方法

    本文实例讲述了C#遍历指定目录下所有文件的方法.分享给大家供大家参考.具体分析如下: 先通过DirectoryInfo打开指定的目录,然后通过GetFiles()方法读取文件夹下的所有文件 DirectoryInfo di = new DirectoryInfo(@"C:\mydir"); Console.WriteLine("Directory: {0}", di.FullName); foreach (FileInfo file in di.GetFiles()

  • C#删除文件目录或文件的解决方法

    复制代码 代码如下: /// 删除文件和目录public class Cleaner
{
   ///   /// 删除指定目录以及该目录下所有文件   ///   /// 欲删除文件或者目录的路径
     public static void Clean ( string dir )
{
          CleanFiles ( dir );//第一次删除文件
          CleanFiles ( dir );//第二次删除目录
     }

private static vo

  • C#获取全部目录和文件的简单实例

    复制代码 代码如下: public class FileAccess{ //储存所有文件夹名private ArrayList dirs; public FileAccess(){dirs = new ArrayList();} //获取所有文件名private ArrayList GetFileName(string dirPath){ArrayList list = new ArrayList(); if (Directory.Exists(dirPath)){list.AddRange(D

  • C#实现最完整的文件和目录操作类实例

    本文实例讲述了C#实现最完整的文件和目录操作类.分享给大家供大家参考.具体如下: using System; using System.Text; using System.IO; namespace HelloCsharp.Utilities { /// <summary> /// 文件操作类 /// </summary> public static class DirFile { #region 检测指定目录是否存在 /// <summary> /// 检测指定目录

  • C#读取目录下所有指定类型文件的方法

    本文实例讲述了C#读取目录下所有指定类型文件的方法.分享给大家供大家参考.具体分析如下: 首先要引入命名空间:using System.IO; 再写读取方法: DirectoryInfo dir = new DirectoryInfo(path); //path为某个目录,如: "D:\Program Files" FileInfo[] inf = dir.GetFiles(); foreach (FileInfo finf in inf) { if( finf.Extension.E

  • C#常用目录文件操作类实例

    本文实例讲述了C#常用目录文件操作类.分享给大家供大家参考.具体分析如下: 这个c#类封装了常用的目录操作,包括列出目录下的文件.检测目录是否存在.得到目录下的文件列表.检测目录是否为空.查找目录下的文件等等功能 using System; using System.Text; using System.IO; namespace DotNet.Utilities { /// <summary> /// 文件操作夹 /// </summary> public static clas

  • c#同步两个子目录文件示例分享 两个文件夹同步

    复制代码 代码如下: using System;using System.Collections.Generic;using System.IO;using System.Text;using System.Text.RegularExpressions;namespace AutoSync{    public class NewDirectory    {        public static Dictionary<string,string> GetDirectories(strin

  • C#操作目录与文件的方法步骤

    • 创建目录和文件1.通过Path类的Combine方法可以合并路径. 复制代码 代码如下: string activeDir = @"C:\myDir";string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne"); 2.目录的创建.创建目录时如果目录已存在,则不会重新创建目录,且不会报错.创建目录时会自动创建路径中各级不存在的目录.(1)通过Directory类的CreateDirectory

  • C#获取项目指定目录下文件的方法

    本文实例讲述了C#获取项目指定目录下文件的方法.分享给大家供大家参考.具体如下: public List<FileInfo> GetFiles() { string path = string.Concat(System.AppDomain.CurrentDomain.BaseDirectory,"Files\\"); //获取项目物理路径 string[] fileType=new string[]{"pdf\\","pps\\",

  • C#计算两个文件的相对目录算法的实例代码

    楼主大菜鸟一只,第一次写技术博客,如果有概念错误或代码不规范的地方,还请各位多多批评指正.话不多说,来看题: 前一阵子开发了一个用户控件,里面调用了很多css,js等资源文件,而引用控件的页面所在目录是不同的.问题出来了:如果目录不同,那么控件里引用css,js资源文件的路径也会相应变化.现在已知两个文件相对于网站根目录的路径,如何计算相对路径呢?请看代码: 复制代码 代码如下: public string GetRelativePath(string path1, string path2){

  • C#文件目录操作方法汇总

    需要 using System.IO; 1) 相对路径转绝对路径 string fullfolder = HttpContext.Current.Server.MapPath(folder); 2) 文件移动(改名) File.Move(Server.MapPath("/a.txt"), Server.MapPath("/b.txt")); 3) 文件复制 File.Copy(Server.MapPath("/a.txt"), Server.Ma

  • C#如何打开并读取usb的文件目录

    下面我通过一个小例子并结合一段代码片段给大家展示下,有需要的朋友可以来借鉴下. 界面上拖一个 button 和treeview  ,运行的时候直接插入优盘,单机按钮就会出现目录文件.不过只能在u盘插入,U盘拔出时,才能接收到信息. 1.[C#]代码 using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; usi

  • c#使用filesystemwatcher实时监控文件目录的添加和删除

    首先,我们需要对.net提供的FileSystemWatcher类有所了解.我有些懒,找了MSDN对该类的描述. FileSystemWatcher类侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件. 使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改.可以创建一个组件来监视本地计算机.网络驱动器或远程计算机上的文件. 若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 ("") 或使用通配符("*

随机推荐