+2009-09-18 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Directory.cs: Avoid imperative CAS checks and remove
+ AccessControl types for NET_2_1
+ * DirectoryInfo.cs: Remove AccessControl types for NET_2_1
+ * File.cs: Remove AccessControl types for NET_2_1
+ * FileInfo.cs: Remove AccessControl types for NET_2_1
+ * FileStream.cs: Remove AccessControl types for NET_2_1
+ * Path.cs: Avoid imperative CAS checks for NET_2_1
+
2009-09-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
* DirectoryInfo.cs: throw if FullPath is not a directory.
using System.Security;
using System.Security.Permissions;
using System.Text;
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
using System.Security.AccessControl;
+#endif
+#if NET_2_0
using System.Runtime.InteropServices;
#endif
return CreateDirectoriesInternal (path);
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
[MonoTODO ("DirectorySecurity not implemented")]
public static DirectoryInfo CreateDirectory (string path, DirectorySecurity directorySecurity)
{
static DirectoryInfo CreateDirectoriesInternal (string path)
{
+#if !NET_2_1
if (SecurityManager.SecurityEnabled) {
new FileIOPermission (FileIOPermissionAccess.Read | FileIOPermissionAccess.Write, path).Demand ();
}
-
+#endif
DirectoryInfo info = new DirectoryInfo (path, true);
if (info.Parent != null && !info.Parent.Exists)
info.Parent.Create ();
string result = MonoIO.GetCurrentDirectory (out error);
if (error != MonoIOError.ERROR_SUCCESS)
throw MonoIO.GetException (error);
-
+#if !NET_2_1
if ((result != null) && (result.Length > 0) && SecurityManager.SecurityEnabled) {
new FileIOPermission (FileIOPermissionAccess.PathDiscovery, result).Demand ();
}
+#endif
return result;
}
throw MonoIO.GetException (error);
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
public static void SetAccessControl (string path, DirectorySecurity directorySecurity)
{
throw new NotImplementedException ();
return result;
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
[MonoNotSupported ("DirectorySecurity isn't implemented")]
public static DirectorySecurity GetAccessControl (string path, AccessControlSections includeSections)
{
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Text;
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
using System.Security.AccessControl;
#endif
throw new ArgumentOutOfRangeException ("searchOption", msg);
}
}
-
+#if !NET_2_1
// access control methods
[MonoLimitation ("DirectorySecurity isn't implemented")]
throw new ArgumentNullException ("directorySecurity");
throw new UnauthorizedAccessException ();
}
+#endif
#endif
}
}
#if NET_2_0
using System.Collections.Generic;
using System.Runtime.InteropServices;
+#endif
+#if NET_2_0 && !NET_2_1
using System.Security.AccessControl;
#endif
public static FileStream Create (string path)
{
- return Create (path, 8192, FileOptions.None, null);
+ return Create (path, 8192);
}
public static FileStream Create (string path, int bufferSize)
{
- return Create (path, bufferSize, FileOptions.None, null);
+ return new FileStream (path, FileMode.Create, FileAccess.ReadWrite,
+ FileShare.None, bufferSize);
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
[MonoTODO ("options not implemented")]
public static FileStream Create (string path, int bufferSize,
FileOptions options)
public static FileStream Create (string path, int bufferSize,
FileOptions options,
FileSecurity fileSecurity)
-#else
- private static FileStream Create (string path, int bufferSize,
- FileOptions options,
- object fileSecurity)
-#endif
{
-#if NET_2_0
return new FileStream (path, FileMode.Create, FileAccess.ReadWrite,
FileShare.None, bufferSize, options);
-#else
- return new FileStream (path, FileMode.Create, FileAccess.ReadWrite,
- FileShare.None, bufferSize);
-#endif
}
+#endif
public static StreamWriter CreateText (string path)
{
return MonoIO.ExistsFile (path, out error);
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
public static FileSecurity GetAccessControl (string path)
{
throw new NotImplementedException ();
throw MonoIO.GetException (error);
}
}
-
+#endif
+#if NET_2_0 && !NET_2_1
public static void SetAccessControl (string path,
FileSecurity fileSecurity)
{
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
using System.Security.AccessControl;
#endif
}
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
public bool IsReadOnly {
get {
if (!Exists)
#endif
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
public FileSecurity GetAccessControl ()
{
throw new NotImplementedException ();
#if NET_2_0
using Microsoft.Win32.SafeHandles;
-using System.Security.AccessControl;
-#endif
#if NET_2_1
using System.IO.IsolatedStorage;
+#else
+using System.Security.AccessControl;
+#endif
#endif
namespace System.IO
{
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
public FileStream (string path, FileMode mode, FileAccess access, FileShare share, int bufferSize, FileOptions options)
: this (path, mode, access, share, bufferSize, false, options)
{
GC.SuppressFinalize (this);
}
-#if NET_2_0
+#if NET_2_0 && !NET_2_1
public FileSecurity GetAccessControl ()
{
throw new NotImplementedException ();
public static string GetFullPath (string path)
{
string fullpath = InsecureGetFullPath (path);
+#if !NET_2_1
if (SecurityManager.SecurityEnabled) {
new FileIOPermission (FileIOPermissionAccess.PathDiscovery, fullpath).Demand ();
}
+#endif
return fullpath;
}