X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.IO%2FDirectoryInfo.cs;h=c6ec35c77ed2ac07ba747633cbaefc75d2966f9d;hb=c133ae2dc82c0533f5790333a3c93b2635b9c43c;hp=11dee2800578fb302cbc8a8e1558313584a04754;hpb=a67abaf7d37bc3175189752306942cebffbd649c;p=mono.git diff --git a/mcs/class/corlib/System.IO/DirectoryInfo.cs b/mcs/class/corlib/System.IO/DirectoryInfo.cs index 11dee280057..c6ec35c77ed 100644 --- a/mcs/class/corlib/System.IO/DirectoryInfo.cs +++ b/mcs/class/corlib/System.IO/DirectoryInfo.cs @@ -345,24 +345,19 @@ namespace System.IO { return CreateSubdirectory (path); } - [MonoNotSupported ("DirectorySecurity isn't implemented")] public DirectorySecurity GetAccessControl () { - throw new UnauthorizedAccessException (); + return Directory.GetAccessControl (FullPath); } - [MonoNotSupported ("DirectorySecurity isn't implemented")] public DirectorySecurity GetAccessControl (AccessControlSections includeSections) { - throw new UnauthorizedAccessException (); + return Directory.GetAccessControl (FullPath, includeSections); } - [MonoLimitation ("DirectorySecurity isn't implemented")] public void SetAccessControl (DirectorySecurity directorySecurity) { - if (directorySecurity != null) - throw new ArgumentNullException ("directorySecurity"); - throw new UnauthorizedAccessException (); + Directory.SetAccessControl (FullPath, directorySecurity); } #endif @@ -379,6 +374,14 @@ namespace System.IO { } public IEnumerable EnumerateDirectories (string searchPattern, SearchOption searchOption) + { + if (searchPattern == null) + throw new ArgumentNullException ("searchPattern"); + + return CreateEnumerateDirectoriesIterator (searchPattern, searchOption); + } + + IEnumerable CreateEnumerateDirectoriesIterator (string searchPattern, SearchOption searchOption) { foreach (string name in Directory.EnumerateDirectories (FullPath, searchPattern, searchOption)) yield return new DirectoryInfo (name); @@ -395,6 +398,14 @@ namespace System.IO { } public IEnumerable EnumerateFiles (string searchPattern, SearchOption searchOption) + { + if (searchPattern == null) + throw new ArgumentNullException ("searchPattern"); + + return CreateEnumerateFilesIterator (searchPattern, searchOption); + } + + IEnumerable CreateEnumerateFilesIterator (string searchPattern, SearchOption searchOption) { foreach (string name in Directory.EnumerateFiles (FullPath, searchPattern, searchOption)) yield return new FileInfo (name);