IO基础操作(一.Path,Directory)
一.基本概念:
文件夹:
用来管理计算机文件的,每一个文件夹对应着磁盘的一个空间地址,没有符号没有扩展名。
文件:
一个具有符号的一组相关元素的有序序列。文件可以包含的内容十分的广泛。系统和用户都可以将具有一定功能的程序模块,数据等命名为一个文件。
流:
字节序列可用于对于后备数据的读写
二.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中路径以及文件夹操作的理解,后续还有其他相关的操作,欢迎大家指正!!