Directory文件夹
1、Directory是对文件夹进行的操作。
1 //CreateDirectory:创建一个新的文件夹 2 //Delete:删除 3 //Move:剪切 4 //Exist()判断指定的文件夹是否存在 5 6 //if (!Directory.Exists(@"C:\Users\SpringRain\Desktop\new")) 7 //{ 8 // Directory.CreateDirectory(@"C:\Users\SpringRain\Desktop\new"); 9 //} 10 11 //Console.WriteLine("操作成功"); 12 13 //for (int i = 0; i < 100; i++) 14 //{ 15 // Directory.CreateDirectory(@"C:\Users\SpringRain\Desktop\new\" + i); 16 //} 17 18 //Console.WriteLine("创建成功"); 19 20 21 //移动 22 23 //Directory.Move(@"C:\Users\SpringRain\Desktop\new", @"C:\Users\SpringRain\Desktop\new2"); 24 //Console.WriteLine("移动成功"); 25 //Directory.Delete(@"C:\Users\SpringRain\Desktop\new2",true); 26 //Console.WriteLine("删除成功"); 27 //Console.ReadKey();
2、获取某一路径下的文件夹和文件名
string path = @"D:\Dpanwangweizhong"; DirectoryInfo di = new DirectoryInfo(path); #region 用实例化DirectoryInfo的方法来 获取文件名称(两种:有路径的,没有路径的) FileInfo[] fitems = di.GetFiles();//获取文件名 foreach (FileInfo f in fitems) { Console.WriteLine(f.FullName);//获取含有路径的文件全名(带后缀).如:D:\Dpanwangweizhong\新建文本文档.txt Console.WriteLine(f.Name);//获取文件全名(带后缀)。如:新建文本文档.txt } #endregion Console.WriteLine("----------------"); #region 用实例化DirectoryInfo的方法来 获取文件夹名称 DirectoryInfo[] ditems= di.GetDirectories();//获取文件夹 foreach (DirectoryInfo d in ditems) { Console.WriteLine(d.FullName);//带有路径的文件夹名称 Console.WriteLine(d.Name);//不带路径的文件夹名称 } #endregion #region 用Directory.GetFiles()方法获取文件名 Console.WriteLine("+++++++++++++++++"); string[] nameitems = Directory.GetFiles(path,"*.*"); foreach (string n in nameitems) { Console.WriteLine(n);//获取含有路径的文件全名(带后缀).如:D:\Dpanwangweizhong\新建文本文档.txt Console.WriteLine(Path.GetFileName(n));////获取文件全名(带后缀)。如:新建文本文档.txt } #endregion #region 用Directory.GetFiles()方法获取文件夹 Console.WriteLine("******************"); string[] diritems = Directory.GetDirectories(path, "*.*"); foreach (string d in diritems) { Console.WriteLine(d);//获取含有路径的文件全名(带后缀).如:D:\Dpanwangweizhong\demo Console.WriteLine(Path.GetFileName(d));////获取文件全名(带后缀)。如:demo } #endregion
3、利用递归获取某个文件夹下的所有文件 完整代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp5 { class Program { //建立集合,接收所有的文件名 List<string> slist = new List<string>(); static void Main(string[] args) { string path = @"D:\aa"; Program p = new Program(); p.SelecrAllFile(path); foreach (string s in p.slist) { Console.WriteLine(s); } p.slist.Clear(); Console.ReadKey(); } /// <summary> /// 利用递归,把某个文件下的所有文件名读取来 /// </summary> /// <param name="path">路径</param> public void SelecrAllFile(string path) { DirectoryInfo di; try { di= new DirectoryInfo(path); //获取该路径下的所有文件名称 FileInfo[] fitems = di.GetFiles(); foreach (FileInfo f in fitems) slist.Add(f.Name); //获得文件名(不含路径),但是会有重名。f.FullName为含有路径的全名 DirectoryInfo[] diitems = di.GetDirectories();//获得所有的文件夹 foreach (DirectoryInfo d in diitems) SelecrAllFile(d.FullName); } catch { Console.WriteLine("路径填写错误"); return; } } } }