directoryinfo
类是system.io
命名空间的一部分。它用于创建,删除和移动目录。它提供了执行与目录和子目录相关的操作的方法。这是一个密封的类,所以不能继承它。
directoryinfo
类提供了下面列出的构造函数,方法和属性。
[serializableattribute]
[comvisibleattribute(true)]
public sealed class directoryinfo : filesysteminfo
下表列出了directoryinfo
类的构造函数。
构造函数 | 描述 |
---|---|
directoryinfo(string) | 它用于在指定的路径上初始化directoryinfo 类的新实例。 |
下表中列出了directoryinfo
类的属性。
属性 | 描述 |
---|---|
attributes | 它用于获取或设置当前文件或目录的属性。 |
creationtime | 它用于获取或设置当前文件或目录的创建时间。 |
creationtimeutc | 它用于在协调的世界时间(utc)中获取或设置创建时间。 |
exists | 它用于获取一个值,指示目录是否存在。 |
extension | 它用于获取表示文件扩展部分的字符串。 |
fullname | 它用于获取目录的完整路径。 |
lastaccesstime | 它用于获取或设置上次访问当前文件或目录的时间。 |
lastaccesstimeutc | 用于在当前文件或目录被上次访问的协调世界时间(utc)中获取或设置时间。 |
lastwritetime | 它用于获取或设置当前文件或目录最后写入的时间。 |
lastwritetimeutc | 当最后一次写入当前文件或目录时,它用于在协调世界时(utc)中获取或设置时间。 |
name | 它用于获取此directoryinfo 实例的名称。 |
parent | 它用于获取指定子目录的父目录。 |
root | 它用于获取目录的根部分。 |
下表列出了directoryinfo
类中定义的方法。
方法 | 描述 |
---|---|
create() | 它用于创建一个目录。 |
create(directorysecurity) | 它用于使用directorysecurity 对象创建目录。 |
createobjref(type) | 它用于创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。 |
createsubdirectory(string) | 它用于在指定的路径上创建一个子目录或子目录。 |
createsubdirectory(string,directorysecurity) | 它用于在具有指定安全性的指定路径上创建子目录或子目录。 |
delete() | 如果directoryinfo 为空,则用于删除directoryinfo 。 |
delete(boolean) | 它用于删除directoryinfo 的实例,指定是否删除子目录和文件。 |
enumeratedirectories() | 它返回当前目录中可用的目录信息集合。 |
enumeratefiles() | 它在当前目录中返回无数的文件信息集合。 |
getaccesscontrol() | 它用于获取一个directorysecurity 对象,该对象封装了目录的访问控制列表(acl)条目。 |
getdirectories() | 它返回当前目录的子目录。 |
getfiles() | 它从当前目录返回文件列表。 |
gettype() | 它用于获取当前实例的类型。 |
moveto(string) | 它用于将directoryinfo 实例及其内容移动到新路径。 |
refresh() | 它用于刷新对象的状态。 |
setaccesscontrol(directorysecurity) | 它用于设置directorysecurity 对象描述的访问控制列表(acl)条目。 |
tostring() | 它返回用户传递的原始路径。 |
在下面的例子中,通过指定目录路径来创建一个名称为:h3_dir的目录。参考以下示例代码的实现 -
using system;
using system.io;
namespace csharpprogram
{
class program
{
static void main(string[] args)
{
// provide directory name with complete location.
directoryinfo directory = new directoryinfo(@"f:\worksp\csharp\h3_dir");
try
{
// check, directory exist or not.
if (directory.exists)
{
console.writeline("directory already exist.");
return;
}
// creating a new directory.
directory.create();
console.writeline("the directory is created successfully.");
}
catch (exception e)
{
console.writeline("directory not created: {0}", e.tostring());
}
}
}
}
执行上面示例代码,得到以下结果 -
the directory is created successfully.
打开目录:f:\worksp\csharp 应该能看到有一个名称为:h3_dir的目录。
directoryinfo
类还提供删除创建的目录的删除方法。
在以下程序中,我们将删除在上面示例程序中创建的h3_dir目录。
using system;
using system.io;
namespace csharpprogram
{
class program
{
static void main(string[] args)
{
// providing directory name with complete location.
directoryinfo directory = new directoryinfo(@"f:\worksp\csharp\h3_dir");
try
{
// deleting directory
directory.delete();
console.writeline("the directory is deleted successfully.");
}
catch (exception e)
{
console.writeline("something went wrong: {0}", e.tostring());
}
}
}
}
执行上面示例代码,得到以下结果 -
the directory is deleted successfully.
打开目录:f:\worksp\csharp 应该能看到h3_dir目录已经被删除了。
如果指定位置不存在目录,它将抛出一个system.io.directorynotfoundexception
异常。您可以自己修改上面代码测试一下。