文件操做基础知识:数组
例:删除F:\a下全部文件夹及文件夹里文件:spa
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace _06删除文件夹操做 { class Program { static void Main(string[] args) { //==============删除F:\a下全部文件夹及文件夹里文件=========== #region 一、最直接作法 string[] demoDirs = Directory.GetDirectories(@"F:\a");//获取该目录下全部的文件夹 string[] demoFiles = Directory.GetFiles(@"F:\a");//获取该目录下全部的文件 //删除文件夹操做 if (demoDirs.Length > 0) { foreach (var item in demoDirs) { Directory.Delete(item, true);//true表示子文件夹不为空时也删除 } } //删除文件操做 if (demoFiles.Length > 0) { foreach (var item in demoFiles) { File.Delete(item); } } #endregion } } }
假设 Directory.Delete(item, true),不能使用true。code
思路:使用递归方法,先删除每一个目录下的文件,而后再删除文件夹,代码以下:对象
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace _06删除文件夹操做 { class Program { static void Main(string[] args) { //==============删除F:\a下全部文件夹及文件夹里文件=========== //二、DirectoryInfo操做文件夹类,FileInfo操做文件类,递归 DirectoryInfo dirInfo = new DirectoryInfo(@"F:\a"); DeleteDir(dirInfo); dirInfo.Delete();//最后再删除该目录 } static void DeleteDir(DirectoryInfo dirInfo) { DirectoryInfo[] dirInfos = dirInfo.GetDirectories(); FileInfo[] fileInfos = dirInfo.GetFiles(); if (fileInfos.Length > 0) { foreach (var file in fileInfos) { file.Delete();//删除该目录下文件 } } if (dirInfos.Length > 0) { foreach (var dir in dirInfos) { DeleteDir(dir);//递归调用该方法,删除该目录下文件夹及文件 dir.Delete();//删除该目录 } } } } }
Directory和DirectoryInfo方法使用总结:
//1.建立一些个目录 :Directory.CreateDirectory(@"c:\test\1");
//2.获取当前目录下的全部的直接子目录:
string[] dirs = Directory.GetDirectories(@"c:\");
string[] dirs = Directory.GetDirectories(@"c:\","*I*",SearchOption.TopDirectoryOnly); //通配符查找目录下的子目录,能够搜索到隐藏文件。
//3.判断某个目录下是否存在某个文件夹:bool Directory.Exists(path)
//4. 删除目录, recursive表示是否递归删除,若是recursive为false则只能删除空目录:
void Delete(string path, bool recursive)
//5.获得一个目录下的文件:
string[] Directory.GetFiles(string path) blog
string[] Directory.GetFiles(string path, string searchPattern, SearchOption searchOption);通配符查找目录下的文件递归
//6. move() //移动、剪切。只能在同一个磁盘中。目录没有Copy方法。能够使用Move()方法实现重命名。string