文件操做基礎知識:數組
例:刪除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