1、获得当前运行程序的路径 string rootPath = Directory.GetCurrentDirectory();
2、获得该文件夹下的文件,返回类型为FileInfo string path=@"X:\XXX\XX"; DirectoryInfo root = new DirectoryInfo(path); FileInfo[] files=root.GetFiles();
3、获得该文件夹下的子目录,返回类型为DirectoryInfo string path=@"X:\XXX\XX"; DirectoryInfo root = new DirectoryInfo(path); DirctoryInfo[] dics=root.GetDirectories();
4、获得文件夹名 string path=@"X:\XXX\XX"; DirectoryInfo root = new DirectoryInfo(path); string dicName=root.Name;
5、获得文件夹完整的路径名 string path=@"X:\XXX\XX"; DirectoryInfo root = new DirectoryInfo(path); string dicName=root.FullName;
6、获取文件的Name和FullName string path=@"X:\XXX\XX"; DirectoryInfo root = new DirectoryInfo(path); foreach (FileInfo f in root.GetFiles()) { string name=f.Name; string fullName=f.FullName; }
7、只获取目录下一级的文件夹与文件 String path = @"X:\xxx\xxx"; //第一种方法 string[] files = Directory.GetFiles(path, "*.txt"); foreach (string file in files) { Console.WriteLine(file); } //第二种方法 DirectoryInfo folder = new DirectoryInfo(path); foreach (FileInfo file in folder.GetFiles("*.txt")) { Console.WriteLine(file.FullName); } 8、递归地输出当前运行程序所在的磁盘下的所有文件名和子目录名 static void Main(string[] args) { //获取当前程序所在的文件路径 String rootPath = Directory.GetCurrentDirectory(); string parentPath = Directory.GetParent(rootPath).FullName;//上级目录 string topPath = Directory.GetParent(parentPath).FullName;//上上级目录 StreamWriter sw = null; try { //创建输出流,将得到文件名子目录名保存到txt中 sw = new StreamWriter(new FileStream("fileList.txt", FileMode.Append)); sw.WriteLine("根目录:" + topPath); getDirectory(sw, topPath, 2); } catch (IOException e) { Console.WriteLine(e.Message); } finally { if (sw != null) { sw.Close(); Console.WriteLine("完成"); } } } /// <summary> /// 获得指定路径下所有文件名 /// </summary> /// <param name="sw">文件写入流</param> /// <param name="path">文件写入流</param> /// <param name="indent">输出时的缩进量</param> public static void getFileName(StreamWriter sw, string path, int indent) { DirectoryInfo root = new DirectoryInfo(path); foreach (FileInfo f in root.GetFiles()) { for (int i = 0; i < indent; i++) { sw.Write(" "); } sw.WriteLine(f.Name); } } /// <summary> /// 获得指定路径下所有子目录名 /// </summary> /// <param name="sw">文件写入流</param> /// <param name="path">文件夹路径</param> /// <param name="indent">输出时的缩进量</param> public static void getDirectory(StreamWriter sw, string path, int indent) { getFileName(sw, path, indent); DirectoryInfo root = new DirectoryInfo(path); foreach (DirectoryInfo d in root.GetDirectories()) { for (int i = 0; i < indent; i++) { sw.Write(" "); } sw.WriteLine("文件夹:" + d.Name); getDirectory(sw, d.FullName, indent + 2); sw.WriteLine(); } }
转载于:https://mp.weixin.qq.com/s/n1LtDr7uMxNJmtko4NiJJg