| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- //
- // System.IO.DirectoryInfo.cs
- //
- // Author:
- // Miguel de Icaza, [email protected]
- // Jim Richardson, [email protected]
- // Dan Lewis, [email protected]
- //
- // Copyright (C) 2002 Ximian, Inc.
- // Copyright (C) 2001 Moonlight Enterprises, All Rights Reserved
- //
- using System;
- using System.Collections;
- namespace System.IO {
-
- [Serializable]
- public sealed class DirectoryInfo : FileSystemInfo {
-
- public DirectoryInfo (string path) {
- CheckPath (path);
-
- OriginalPath = path;
- FullPath = Path.GetFullPath (path);
- }
- // properties
- public override bool Exists {
- get {
- Refresh (false);
- if (stat.Attributes == MonoIO.InvalidFileAttributes)
- return false;
- if ((stat.Attributes & FileAttributes.Directory) == 0)
- return false;
- return true;
- }
- }
- public override string Name {
- get {
- return Path.GetFileName (FullPath);
- }
- }
- public DirectoryInfo Parent {
- get {
- return new DirectoryInfo (Path.GetDirectoryName (FullPath));
- }
- }
- public DirectoryInfo Root {
- get {
- return new DirectoryInfo (Path.GetPathRoot (FullPath));
- }
- }
- // creational methods
- public void Create () {
- Directory.CreateDirectory (FullPath);
- }
- public DirectoryInfo CreateSubdirectory (string name) {
- string path = Path.Combine (FullPath, Path.GetFileName (name));
- Directory.CreateDirectory (path);
- return new DirectoryInfo (path);
- }
- // directory listing methods
- public FileInfo [] GetFiles () {
- return GetFiles ("*");
- }
- public FileInfo [] GetFiles (string pattern) {
- string [] names = Directory.GetFiles (FullPath, pattern);
- ArrayList infos = new ArrayList ();
- foreach (string name in names)
- infos.Add (new FileInfo (name));
- return (FileInfo []) infos.ToArray (typeof (FileInfo));
- }
- public DirectoryInfo [] GetDirectories () {
- return GetDirectories ("*");
- }
- public DirectoryInfo [] GetDirectories (string pattern) {
- string [] names = Directory.GetDirectories (FullPath, pattern);
- ArrayList infos = new ArrayList ();
- foreach (string name in names)
- infos.Add (new DirectoryInfo (name));
- return (DirectoryInfo []) infos.ToArray (typeof (DirectoryInfo));
- }
- public FileSystemInfo [] GetFileSystemInfos () {
- return GetFileSystemInfos ("*");
- }
- public FileSystemInfo [] GetFileSystemInfos (string pattern) {
- ArrayList infos = new ArrayList ();
- infos.AddRange (GetDirectories (pattern));
- infos.AddRange (GetFiles (pattern));
- return (FileSystemInfo []) infos.ToArray (typeof (FileSystemInfo));
- }
- // directory management methods
- public override void Delete () {
- Delete (false);
- }
- public void Delete (bool recurse) {
- Directory.Delete (FullPath, recurse);
- }
- public void MoveTo (string dest) {
- Directory.Move (FullPath, dest);
- }
- public override string ToString () {
- return OriginalPath;
- }
- }
- }
|