本章讲述:删除文件和删除空文件夹

注意:删除文件和删除空文件夹的方法不一样,但是删除空文件夹的时候,需要去除文件夹自身的只读属性

文件属性设置:

//文件属性设置    using System.IOFileInfo fileInfo = new FileInfo( @"c:\boot.ini" );
//去掉隐藏属性
fileInfo.Attributes &= ~FileAttributes.Hidden;
//去掉只读属性
fileInfo.Attributes &= ~FileAttributes.ReadOnly;
相反的操作:
//增加只读属性
fileInfo.Attributes |= FileAttributes.ReadOnly;
//增加隐藏属性
fileInfo.Attributes |= FileAttributes.Hidden;

创建方法,删除文件夹中的所有文件包括文件夹本身  :

public void DeleteFile(string file)
{//去除文件夹和子文件的只读属性//去除文件夹的只读属性System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file);fileInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;//去除文件的只读属性System.IO.File.SetAttributes(file, System.IO.FileAttributes.Normal);//判断文件夹是否还存在if (Directory.Exists(file)){foreach (string f in Directory.GetFileSystemEntries(file)){if (File.Exists(f)){//如果有子文件删除文件File.Delete(f);}else{//循环递归删除子文件夹DeleteFile(f);}}//删除空文件夹Directory.Delete(file);}
}

删除指定文件夹下所有文件而保存文件夹

<summary>
/// 清空指定的文件夹,但不删除文件夹
/// </summary>
/// <param name="dir"></param>
public static void DeleteFolder(string dir)
{foreach (string d in Directory.GetFileSystemEntries(dir)){if (File.Exists(d)){FileInfo fi = new FileInfo(d);if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)fi.Attributes = FileAttributes.Normal;File.Delete(d);//直接删除其中的文件}else{DirectoryInfo d1 = new DirectoryInfo(d);if (d1.GetFiles().Length != 0){DeleteFolder(d1.FullName);递归删除子文件夹}Directory.Delete(d);}}
}
/// <summary>
/// 删除文件夹及其内容
/// </summary>
/// <param name="dir"></param>
public static void DeleteFolder1(string dir)
{foreach (string d in Directory.GetFileSystemEntries(dir)){if (File.Exists(d)){FileInfo fi = new FileInfo(d);if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)fi.Attributes = FileAttributes.Normal;File.Delete(d);//直接删除其中的文件}elseDeleteFolder(d);递归删除子文件夹Directory.Delete(d);}
}

C# 删除文件和删除空文件夹相关推荐

  1. java 空文件夹删除_删除Java中的空文件夹,处理隐藏文件

    我想删除java中的空文件夹,这里是我的代码: try (DirectoryStream stream = Files.newDirectoryStream(path)) { for (Path fi ...

  2. 删除电脑里的空文件夹

    发现电脑好多空文件夹,网上没有找到删除空文件夹的程序,自己动手谢了段代码 import java.io.File;/*** @author zhangyanan*/ public class File ...

  3. 利用批处理脚本批量删除电脑上的空文件夹

    @echo off for /f "tokens=*" %%i in ('dir/s/b/ad^|sort /r') do rd "%%i" 使用"记 ...

  4. Python操作FTP服务器实现文件和文件夹的上传与下载,python清理ftp目录下的所有文件和非空文件夹

    Python 连接 FTP 服务器并实现文件夹上传实例演示 第一章:连接 FTP 服务器并实现文件夹上传 ① 连接 FTP 服务器 ② 区分文件和文件夹名 ③ 文件夹名包含空格处理 ④ 使用递归实现: ...

  5. 如何批量删除电脑上的空文件夹?

    for /f "tokens=*" %%i in ('dir/s/b/ad^|sort /r') do rd "%%i" https://www.zhihu.c ...

  6. windows批量删除当前目录下的空文件夹

    @echo offCd /d %~dp0If not "%1" == "" cd /d %1Echo Current directory: %cd%PauseF ...

  7. Python删除当前目录下面的空文件夹

    import os,sys path=r'G:\beima_saixuan\hebing'for dirname in os.listdir(path):for root,dirs,files in ...

  8. 如何删除空文件夹Java_JAVA实现将磁盘中所有空文件夹进行删除的代码

    实现代码一. import java.io.file; import java.io.*; public class delnulldir { public void showdir(file f){ ...

  9. 批量删除电脑或手机中的空文件夹

    目录 背景 国内外研究现状 背景 偶然看到python的OS库中有这样两个函数 os.rmdir() 删除空文件夹 remove dir os.mkdir() 新建文件夹 make dir 就想到能不 ...

  10. 服务器bat脚本删除空文件夹,windows批处理命令(1)——右键清理空文件夹

    日常学习工作免不了使用电脑,而作为一个强迫症,看到电脑中有空文件及其不爽: 再加上使用一些Git工具时含空文件不允许提交,因此就寻思着可不可以写一个脚本直接一键清理空文件夹. 最终实现的效果如下: 最 ...

最新文章

  1. 企业品牌竞争力研究(二):提高企业品牌竞争力的要素(创新SPR理论)
  2. java 停顿 分钟_java - 年轻的垃圾收集更长时间停顿与Java 7 vs java 6 - 堆栈内存溢出...
  3. 新5 年时间服务器从 0 到 200,一个创业公司的架构野蛮生长史头疼哈
  4. JMeter学习(三十一)Access Log Sampler
  5. 包装类型与基本类型的装箱与拆箱操作
  6. FFMPEG结构体分析:AVStream
  7. 第二次冲刺站立会议10
  8. 12. Window alert() 方法
  9. jQuery 写的简单打字游戏
  10. OC, OD门和线与逻辑
  11. win7资源服务器未响应,win7电脑怎么设置服务器未响应
  12. Oracle数据类型详细解释
  13. DeepFake检测论文汇总
  14. 软件测试分类冒烟测试,什么是冒烟测试
  15. stm32f407 hal uasrt 1 使用
  16. HDU 4508 湫湫系列故事――减肥记I 【完全背包】
  17. 简单(静态)工厂模式
  18. 【安全预警】WINRAR,7ZIP,WINZIP等存在严重漏洞
  19. 像学Excel一样国产SPL数据库,零基础入门(1)
  20. 【Cat.1模组】 广和通L610 基于OpenCPU的SDK二次开发

热门文章

  1. 【概率论基础进阶】数理统计的基本概念-常用统计分布
  2. Android 表情功能实现,封装面板方便使用
  3. HTML,js自制MP3音频播放器
  4. 那些让你敬佩万分奉若圭臬的话,你认为有哪些?
  5. [Quick-Cococs2DX] Quick-Cocos2D-X学习 (一) 下载Quick-Cocos2D-X 并成功运行示例代码
  6. android 高仿糯米界面,仿美团、糯米、大众点评顶部可滑动菜单
  7. 用友软件T3出纳通提示单据锁定
  8. mysql 创建数据库时报错 error 1044
  9. CocosCreator 屏幕截图最终转为SpriteFrame
  10. 老张的哲学-netcore基础