using System;
using System.Text;
using System.IO;
using System.Linq;

public static partial class FileUtil
{

#region 删除目录和文件

/// <summary>
/// 删除目录及其下面的所有子目录和文件。如果目录有只读属性,则先去掉只读属性,然后删除。
/// </summary>
/// <param name="path"></param>
public static void DeleteDirectory(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
DeleteDirectory(di);
}

/// <summary>
/// 删除目录及其下面的所有子目录和文件。如果目录有只读属性,则先去掉只读属性,然后删除。
/// </summary>
/// <param name="di"></param>
public static void DeleteDirectory(DirectoryInfo di)
{
FileSystemInfo[] fsiArr = di.GetFileSystemInfos();
foreach (FileSystemInfo fsi in fsiArr)
{
fsi.Refresh();
if (fsi is DirectoryInfo)
{
DeleteDirectory(fsi.FullName);
}
else
{
DeleteFile(fsi.FullName);
}
}

di.Refresh();
if ((di.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
di.Attributes &= ~FileAttributes.ReadOnly;
}
di.Delete();
}

/// <summary>
/// 删除文件。如果文件具有只读属性,则先去掉只读属性,然后删除。
/// </summary>
/// <param name="fileName">要删除的文件名,应为绝对路径</param>
public static void DeleteFile(string fileName)
{
FileInfo fi = new FileInfo(fileName);
DeleteFile(fi);
}

/// <summary>
/// 删除文件。如果文件具有只读属性,则先去掉只读属性,然后删除。
/// </summary>
/// <param name="fi">要删除的文件</param>
public static void DeleteFile(FileInfo fi)
{
fi.Refresh();
if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
fi.Attributes &= ~FileAttributes.ReadOnly;
}
fi.Delete();
}

/// <summary>
/// 清空目录。如果目录下的子目录或文件有只读属性,则先去掉只读属性,然后删除。
/// 此方法与 DeleteDirectory 的区别是,DeleteDirectory 会将目录连同其子对象一起删除,
/// 此方法不删除目录本身,而只是删除它的子对象。
/// </summary>
/// <param name="path"></param>
public static void EmptyDirectory(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
EmptyDirectory(di);
}

/// <summary>
/// 清空目录。如果目录下的子目录或文件有只读属性,则先去掉只读属性,然后删除。
/// 此方法与 DeleteDirectory 的区别是,DeleteDirectory 会将目录连同其子对象一起删除,
/// 此方法不删除目录本身,而只是删除它的子对象。
/// </summary>
/// <param name="di"></param>
public static void EmptyDirectory(DirectoryInfo di)
{
foreach (FileSystemInfo fsi in di.GetFileSystemInfos())
{
if (fsi is DirectoryInfo)
{
DeleteDirectory(fsi.FullName);
}
else
{
DeleteFile(fsi.FullName);
}
}
}

#endregion

}

转载于:https://www.cnblogs.com/illusion/archive/2011/04/13/2014802.html

操作文件的实用类,删除目录,清空目录,删除文件相关推荐

  1. 1.4 File类(文件操作类)获取文件属性,创建和删除文件\目录,遍历目录

    在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成.File 类定义了一些方法来操作文件,如新 ...

  2. php删除到回收站代码,怎么找回回收站删除的文件 php自定义函数之递归删除文件及目录...

    复制代码 代码如下: /*------------------ */ //– 递归删除文件及目录 //– 例: del_dir ('../cache/');注意:返回的/是必须的 //– $type ...

  3. nodejs 清空目录或清空目录下文件夹

    利用nodejs fs模块 制作一个清空目录下文件的小工具 具体思路 封装一个函数,该函数接收一个参数path,表示目标路径. 首先引入fs模块,在函数体内,调用fs模块的API  readdirSy ...

  4. matlab清空文件夹命令_matlab 中的删除文件

    Matlab中有两种删除文件的方式: 一种是删除文件     delete()函数      //可以使用help  delete命令查询delete()函数的使用方法 delete('p1.jpg' ...

  5. php清除文件夹下所有文件,学习猿地-php如何删除文件夹及其文件夹下所有文件...

    php删除文件夹及其文件夹下所有文件的方法:首先新建递归函数执行删除文件夹操作:然后在递归函数内,执行while循环,使用unlink方法删除文件夹内的文件,直至文件夹没有文件后:最后跳出while循 ...

  6. 文件夹访问被拒绝无法删除文件,怎么提高权限删除目标文件夹

    关于"文件夹访问被拒绝"无法删除文件的解决方法 "文件访问拒绝无法删除"所遇到的问题分析? 1.无法删除"XXXX"文件,访问被拒绝,请确定 ...

  7. 关于“文件夹访问被拒绝”无法删除文件的解决方法

    关于"文件夹访问被拒绝"无法删除文件的解决方法 关于"文件夹访问被拒绝"无法删除文件的解决方法 "文件访问拒绝无法删除"所遇到的问题分析? ...

  8. 服务器要删除文件访问被拒绝,Win7系统删除文件提示文件访问被拒绝怎么办

    近期,有用户反映win7删除文件弹出"文件访问被拒绝"情况,这是怎么回事呢?怎么办呢?接下来大家跟着学习啦小编一起来了解一下Win7系统删除文件提示文件访问被拒绝的解决方法吧. W ...

  9. java删除目录以及目录下文件,java删除文件、删除目录及目录下的文件

    import java.io.File; public class FileUtils { /** * 删除文件,可以是文件或文件夹 * @param fileName:要删除的文件名 * @retu ...

  10. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法

    22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...

最新文章

  1. 10.1 国庆 考试
  2. SynchronizedMap和ConcurrentHashMap的深入分析
  3. hadoop学习-海量日志分析(提取KPI指标)
  4. 编写 matlab怎么调用 8 点和 16 点的 fft,8点基于DIT的FFT的实现
  5. python中使用kazoo连接zookeeper(一)
  6. git如何查看和切换账号
  7. ELK收集日志到mysql
  8. 神舟战神怎么装win11系统
  9. 怎么查看linux硬盘多路径,linux下磁盘多路径
  10. Ka的回溯编程练习 Part4|分配工作与选书
  11. 面包板电源线怎么接_如何维修面包板电源
  12. Flutter报setState() or markNeedsBuild() called during build.错误解决办法
  13. apk软件去广告 傻瓜教程
  14. 【慕伏白教程】Git的安装与基本使用
  15. 最近 火火火火 的 GitHub 项目!
  16. Chatbot 分类
  17. 祝贺|蚂蚁金服技术人许寄入选2018 MIT TR 35全球榜单
  18. Python快速学习08:模块的操作
  19. 设计模式-简单总结(不涉及代码,有需要戳)
  20. 汉语自动分词研究评述

热门文章

  1. 2.vue的diff算法(2020.12.07)
  2. LeetCode(637)——二叉树的层平均值(JavaScript)
  3. 计算机网络学习笔记(1. 什么是计算机网络?)
  4. 零基础带你学习计算机网络复习—(五)
  5. java代码实现画板_求好心人帮找或做个JAVA画板程序 代码,主要能实现简单的画板功能!...
  6. python integer怎么用_Python core.integer方法代码示例
  7. 进大学时高考成绩是班里第一,同样也是努力学习,为什么大学时做不到第一了呢?
  8. 程序员的工资普遍在20k以上
  9. 为什么要使用namedtuple?
  10. ETC因背胶问题脱落,如何重新激活?