整理好麻烦.
[cce_cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace DirectoryInfoDemo
{
class Program
{
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.Magenta;//设置输出颜色
DirectoryInfo dirInfo = new DirectoryInfo(@"D:123123");
try
{
//==========================属性=========================
DirectoryInfo dirParent = dirInfo.Parent;//获取指定子目录的父目录DirectoryInfo对象
DirectoryInfo dirRoot = dirInfo.Root;//获取路径的跟DirectoryInfo对象
Console.WriteLine(dirInfo.Name);//返回目录的名称
DateTime dirDate = dirInfo.CreationTime;//当前 FileSystemInfo 对象的创建日期和时间
Console.WriteLine(dirInfo.Exists);//获取目录是否存在,如果目录存在,则为 true,否则为 false
Console.WriteLine(dirInfo.FullName);//获取目录的完整路径
//==========================方法=========================
Console.WriteLine("Create创建文件夹");
dirInfo.Create();//创建文件夹
Console.ReadKey();
Console.WriteLine("GetFiles获取该目录下的文件返回FileInfo数组");
FileInfo[] file = dirInfo.GetFiles();
foreach (var item in file)
{
Console.WriteLine(item.Name);//输出数组中,所有文件的名字
}
Console.ReadKey();
Console.WriteLine("GetDirectories获取该目录下的所有文件夹,返回DirectoryInfo数组");
DirectoryInfo[] dir = dirInfo.GetDirectories();
foreach (var item in dir)
{
Console.WriteLine(item.Name);//输出数组中,所有文件的名字
}
Console.ReadKey();
Console.WriteLine("CreateSubdirectory创建子目录");
dirInfo.CreateSubdirectory("a");//创建一个名为a的子目录
Console.ReadKey();
Console.WriteLine("MoveTo将该文件夹移动到新位置");
dirInfo.MoveTo(@"D:1");
Console.ReadKey();
Console.WriteLine("Delete删除文件夹");
//dirInfo.Delete();//文件夹不存在会引发异常
Console.ReadKey();
}
catch (DirectoryNotFoundException)//目录不存在时引发的异常
{
Console.WriteLine("文件或文件夹不存在,程序终止!");
Console.ReadKey();
}
catch (IOException e)//进行IO操作引发的异常基类
{
Console.WriteLine(e.Message);
}
catch (Exception ex)//所有异常的基类,通过这个基类,可以捕获上面捕获不到的异常
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
}
[/cce_cs]
代码下载:[download id="14"]
另外,可以通过Attributes属性来获取该文件夹的属性
[cce_cs]
DirectoryInfo dirInfo = new DirectoryInfo(@"C:Boot");
if ((dirInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
Console.WriteLine("该目录为隐藏");
}
if ((dirInfo.Attributes & FileAttributes.System) == FileAttributes.System)
{
Console.WriteLine("该目录为系统文件夹");
}
[/cce_cs]
另外可以通过直接给Attributes赋值来设置文件夹的属性
[cce_cs]
dirInfo.Attributes = FileAttributes.Normal;//这个表示正常,没有其他属性
[/cce_cs]
另外附上该枚举的成员
成员名称 |
说明 |
ReadOnly |
文件为只读。 |
Hidden |
文件是隐藏的,因此没有包括在普通的目录列表中。 |
System |
文件为系统文件。文件是操作系统的一部分或由操作系统以独占方式使用。 |
Directory |
文件为一个目录。 |
Archive |
文件的存档状态。应用程序使用此属性为文件加上备份或移除标记。 |
Device |
保留供将来使用。 |
Normal |
文件正常,没有设置其他的属性。此属性仅在单独使用时有效。 |
Temporary |
文件是临时文件。文件系统试图将所有数据保留在内存中以便更快地访问,而不是将数据刷新回大容量存储器中。不再需要临时文件时,应用程序会立即将其删除。 |
SparseFile |
文件为稀疏文件。稀疏文件一般是数据通常为零的大文件。 |
ReparsePoint |
文件包含一个重新分析点,它是一个与文件或目录关联的用户定义的数据块。 |
Compressed |
文件已压缩。 |
Offline |
文件已脱机。文件数据不能立即供使用。 |
NotContentIndexed |
操作系统的内容索引服务不会创建此文件的索引。 |
Encrypted |
该文件或目录是加密的。对于文件来说,表示文件中的所有数据都是加密的。对于目录来说,表示新创建的文件和目录在默认情况下是加密的。 |
1 Reply to “DirectoryInfo类演示”