X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.IO%2FDirectory.cs;h=dfc6049f1bc8f2bfcfce0e246f80464f95a30630;hb=7c970f8ee1f635da8575bcf58d89c16bb5c2ace1;hp=7b3efcc6976cfbe3c636b0ca1989d79fccefcdfc;hpb=4eb352bcb3ef7a71dc9ab62c5cd2d5e7598619f7;p=mono.git diff --git a/mcs/class/corlib/System.IO/Directory.cs b/mcs/class/corlib/System.IO/Directory.cs index 7b3efcc6976..dfc6049f1bc 100644 --- a/mcs/class/corlib/System.IO/Directory.cs +++ b/mcs/class/corlib/System.IO/Directory.cs @@ -42,9 +42,16 @@ using System.Collections; using System.Security; using System.Security.Permissions; using System.Text; +#if NET_2_0 +using System.Security.AccessControl; +using System.Runtime.InteropServices; +#endif namespace System.IO { +#if NET_2_0 + [ComVisible (true)] +#endif public #if NET_2_0 static @@ -85,6 +92,14 @@ namespace System.IO return CreateDirectoriesInternal (path); } +#if NET_2_0 + [MonoTODO ("DirectorySecurity not implemented")] + public static DirectoryInfo CreateDirectory (string path, DirectorySecurity directorySecurity) + { + return(CreateDirectory (path)); + } +#endif + static DirectoryInfo CreateDirectoriesInternal (string path) { if (SecurityManager.SecurityEnabled) { @@ -140,8 +155,7 @@ namespace System.IO */ success = MonoIO.DeleteFile (path, out error); } else { - success = MonoIO.RemoveDirectory (path, - out error); + success = MonoIO.RemoveDirectory (path, out error); } if (!success) { @@ -151,7 +165,7 @@ namespace System.IO * So maybe this could be handled somewhere else? */ if (error == MonoIOError.ERROR_FILE_NOT_FOUND) - throw new DirectoryNotFoundException ("Directory '" + path + "' doesnt exists."); + throw new DirectoryNotFoundException ("Directory '" + path + "' does not exist"); else throw MonoIO.GetException (path, error); } @@ -215,12 +229,12 @@ namespace System.IO { return File.GetLastAccessTime (path); } - + public static DateTime GetLastAccessTimeUtc (string path) { return GetLastAccessTime (path).ToUniversalTime (); } - + public static DateTime GetLastWriteTime (string path) { return File.GetLastWriteTime (path); @@ -334,15 +348,15 @@ namespace System.IO static bool IsRootDirectory (string path) { // Unix - if (Path.DirectorySeparatorChar == '/' && path == "/") - return true; + if (Path.DirectorySeparatorChar == '/' && path == "/") + return true; - // Windows - if (Path.DirectorySeparatorChar == '\\') - if (path.Length == 3 && path.EndsWith (":\\")) - return true; + // Windows + if (Path.DirectorySeparatorChar == '\\') + if (path.Length == 3 && path.EndsWith (":\\")) + return true; - return false; + return false; } public static DirectoryInfo GetParent (string path) @@ -365,34 +379,41 @@ namespace System.IO return new DirectoryInfo (parent_name); } - public static void Move (string src, string dest) + public static void Move (string sourceDirName, string destDirName) { - if (src == null) - throw new ArgumentNullException ("src"); + if (sourceDirName == null) + throw new ArgumentNullException ("sourceDirName"); - if (dest == null) - throw new ArgumentNullException ("dest"); + if (destDirName == null) + throw new ArgumentNullException ("destDirName"); - if (src.Trim () == "" || src.IndexOfAny (Path.InvalidPathChars) != -1) - throw new ArgumentException ("Invalid source directory name: " + src, "src"); + if (sourceDirName.Trim () == "" || sourceDirName.IndexOfAny (Path.InvalidPathChars) != -1) + throw new ArgumentException ("Invalid source directory name: " + sourceDirName, "sourceDirName"); - if (dest.Trim () == "" || dest.IndexOfAny (Path.InvalidPathChars) != -1) - throw new ArgumentException ("Invalid target directory name: " + dest, "dest"); + if (destDirName.Trim () == "" || destDirName.IndexOfAny (Path.InvalidPathChars) != -1) + throw new ArgumentException ("Invalid target directory name: " + destDirName, "destDirName"); - if (src == dest) - throw new IOException ("Source directory cannot be same as a target directory."); + if (sourceDirName == destDirName) + throw new IOException ("Source and destination path must be different."); - if (Exists (dest)) - throw new IOException (dest + " already exists."); + if (Exists (destDirName)) + throw new IOException (destDirName + " already exists."); - if (!Exists (src)) - throw new DirectoryNotFoundException (src + " does not exist"); + if (!Exists (sourceDirName) && !File.Exists (sourceDirName)) + throw new DirectoryNotFoundException (sourceDirName + " does not exist"); MonoIOError error; - if (!MonoIO.MoveFile (src, dest, out error)) + if (!MonoIO.MoveFile (sourceDirName, destDirName, out error)) throw MonoIO.GetException (error); } +#if NET_2_0 + public static void SetAccessControl (string path, DirectorySecurity directorySecurity) + { + throw new NotImplementedException (); + } +#endif + public static void SetCreationTime (string path, DateTime creation_time) { File.SetCreationTime (path, creation_time); @@ -500,12 +521,26 @@ namespace System.IO throw new ArgumentException ("Path is invalid", "path"); } - string [] result = MonoIO.GetFileSystemEntries (wildpath, pattern, (int) attrs, (int) mask, out error); + string path_with_pattern = Path.Combine (wildpath, pattern); + string [] result = MonoIO.GetFileSystemEntries (path, path_with_pattern, (int) attrs, (int) mask, out error); if (error != 0) throw MonoIO.GetException (wildpath, error); - + return result; } + +#if NET_2_0 + [MonoNotSupported ("DirectorySecurity isn't implemented")] + public static DirectorySecurity GetAccessControl (string path, AccessControlSections includeSections) + { + throw new PlatformNotSupportedException (); + } + + [MonoNotSupported ("DirectorySecurity isn't implemented")] + public static DirectorySecurity GetAccessControl (string path) + { + throw new PlatformNotSupportedException (); + } +#endif } } -