DirectoryInfo归属于System.IO这个输入输出流命名空间,主要用来操作目录,如可以进行复制,移动,重命名,创建和删除目录,此类不可被继承。
下面我们来简单的进行目录操作吧。
首先呢,我在E:\盘下创建一个文件夹,名为测试,该文件夹下又有三个子目录,两个文件夹,一个.txt文本文件,在第一个子文件夹中继续嵌套三个子目录。
看下图:
前面已经 做足了测试环境,那接下来看代码吧。
//输入一个目录路径,然后就显示下面的目录或者文件的信息
private void ShowDirectory(DirectoryInfo dir)
{
Console.WriteLine("以下为" + dir.Name + " 所有子目录名称: ");
//目录类的对象数组,存放当前目录下的文件夹
DirectoryInfo[] myDirectoryInfo = dir.GetDirectories();
foreach (DirectoryInfo subDir in myDirectoryInfo)
{
Console.WriteLine
(subDir.Name + "\n" +
"[最后修改日期:" + subDir.LastAccessTime + "]\n" +
"[最后写入日期:" + subDir.LastWriteTime + "]\n"
);
ShowDirectory(subDir);//递归循环调用
ShowFiles(subDir);
}
}
//显示当前目录下的文件信息
private void ShowFiles(DirectoryInfo dir)
{
Console.WriteLine("以下为" + dir.Name + " 所有子文件名称: ");
FileInfo[] myFileInfo = dir.GetFiles();
foreach (FileInfo myFile in myFileInfo)
{
Console.WriteLine
(myFile.Name + "\n" +
"[文件扩展名:" + myFile.Extension + "]\n" +
"[最后修改日期:" + myFile.LastAccessTime + "]\n" +
"[最后写入日期:" + myFile.LastAccessTime + "]\n"
);
}
}
ShowDirectory()方法只能看到文件夹,而文件类型却不知道,所以创建一个ShowFiles()来查看文件类型,两个方法一同调用就可以得出目录下的所有文件了。
调用方法:
static void Main(string[] args)
{
//按下enter键
Console.Write("请输入目录名称: ");
//声明字符串接收自定义输入目录
string strDirectoryName = Console.ReadLine();
//创建当前目录对象
DirectoryInfo myDirectoryInfo = new DirectoryInfo(strDirectoryName);
//判断该目录是否存在
if (!myDirectoryInfo.Exists)
{
//创建该文件夹
myDirectoryInfo.Create();
}
else
{
//实例化当前类
UsingDirInfo myUsingDirInfo = new UsingDirInfo();
//显示当前目录对象下目录信息
myUsingDirInfo.ShowDirectory(myDirectoryInfo);
//显示当前目录对象下的文件信息
myUsingDirInfo.ShowFiles(myDirectoryInfo);
Console.ReadLine();
}
}
一个查询目录下的所有子目录就这样完成了,自己复制代码运行一下。