一.基本概念:
文件夹:
用来管理计算机文件的,每一个文件夹对应着磁盘的一个空间地址,没有符号没有扩展名。
文件:
一个具有符号的一组相关元素的有序序列。文件可以包含的内容十分的广泛。系统和用户都可以将具有一定功能的程序模块,数据等命名为一个文件。
流:
字节序列可用于对于后备数据的读写
二.IO命名空间的常用类:
FileInfo,Direcationary,DicInfo,Path,StreamWrite,StreamWrite,FileStream,MemoryStream,
MemoryStream,BufferedStream,BinaryReder,BinaryWriter,StringReader,StringWrite,Stream,
TextWriter,TextReader…
三。Path类的常用方法:
public void PathEx() { string path = @"d:\testFiles"; string path2 = @"test\file.txt"; Path.ChangeExtension(path2, "doc"); //改变文件的扩展名 string newPath = Path.Combine(path, path2); //进行路径的拼接 Path.GetExtension(path2); //获取文件的扩展名 Path.GetFileName(path2); //获取文件的扩展名 Path.GetFileNameWithoutExtension(path2);//获取不带扩展名的文件名字s Path.HasExtension(path2); //路径中是不是包含扩展名 Path.GetFullPath(newPath); //获取全路径 }
二.Directory操作:
Directory的使用:
(1)创建文件夹:
string path = @"d:\ABC\enf"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); }
(2)删除文件夹
Directory.Delete(path,false); //其中的false表示不删除文件夹中的子目录以及文件,如果为true的时候,如果包含子目录的时候就不能删除
(3)移动文件夹
Directory.Move(path1,path2);
(4)获取子目录的列表
string[] vs = Directory.GetDirectories(path);
(5)获取目录下所有的文件:
string[] Files = Directory.GetFiles(path);//获取该目录下的所有文件
DirectoryInfo的使用:
(1)递归加载某个目录下面的所有 的文件夹以及文件:
private void getChildDicsAndFiles(string path, List<string> dicList) { DirectoryInfo directoryInfo = new DirectoryInfo(path); DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories(); FileInfo[] fileInfos = directoryInfo.GetFiles(); dicList.AddRange(fileInfos.Select(x => x.FullName)); foreach (var dic in directoryInfos) { dicList.Add(dic.FullName); getChildDicsAndFiles(dic.FullName, dicList) } }
(2)其他操作:这些操作其实和Directory中的方法是对应起来的,可以对比着来看;
public void DicInfoExample() { string path = @"d:\ABCD\TEST"; DirectoryInfo directoryInfo = new DirectoryInfo(path); directoryInfo.Create(); //创建子目录 directoryInfo.MoveTo(目标路径); directoryInfo.Delete(false); //有子目录不能删除 directoryInfo.Delete(true);//有子目录可以删除 }
总结:
以上就是我对于IO中路径以及文件夹操作的理解,后续还有其他相关的操作,欢迎大家指正!!