X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.IO%2FDirectory.cs;h=dfc6049f1bc8f2bfcfce0e246f80464f95a30630;hb=7c970f8ee1f635da8575bcf58d89c16bb5c2ace1;hp=a802b10c8c840df7c7cc68792e43cede60e0b0aa;hpb=acacb61e04cf99c9ff7eedfcf9c5482b8a71f4c9;p=mono.git diff --git a/mcs/class/corlib/System.IO/Directory.cs b/mcs/class/corlib/System.IO/Directory.cs index a802b10c8c8..dfc6049f1bc 100644 --- a/mcs/class/corlib/System.IO/Directory.cs +++ b/mcs/class/corlib/System.IO/Directory.cs @@ -44,10 +44,14 @@ 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 @@ -88,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) { @@ -143,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) { @@ -218,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); @@ -337,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) @@ -368,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); @@ -526,4 +544,3 @@ namespace System.IO #endif } } -