X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FMicrosoft.Build.Tasks%2FMicrosoft.Build.Tasks%2FRemoveDir.cs;h=32505c9a42474e75607b634af19b255eeab69f36;hb=e783efa7959a835bc17dd0208c472490bf0d2aba;hp=66dae29958b8e78f5bffb32ca1bf9887e1bef922;hpb=4a2ab0336e97f3591eebbb881a1471d3051946c9;p=mono.git diff --git a/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/RemoveDir.cs b/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/RemoveDir.cs index 66dae29958b..32505c9a424 100644 --- a/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/RemoveDir.cs +++ b/mcs/class/Microsoft.Build.Tasks/Microsoft.Build.Tasks/RemoveDir.cs @@ -28,7 +28,7 @@ #if NET_2_0 using System; -using System.Collections; +using System.Collections.Generic; using System.IO; using System.Security; using Microsoft.Build.Framework; @@ -45,15 +45,18 @@ namespace Microsoft.Build.Tasks { public override bool Execute () { - ArrayList temporaryRemovedDirectories = new ArrayList (); + if (directories.Length == 0) + return true; + + List temporaryRemovedDirectories = new List (); foreach (ITaskItem directory in directories) { try { - Directory.Delete (directory.GetMetadata ("FullPath"), true); - temporaryRemovedDirectories.Add (directory); - } - catch (DirectoryNotFoundException ex) { - Log.LogErrorFromException (ex); + string fullpath = directory.GetMetadata ("FullPath"); + if (Directory.Exists (fullpath)) { + Directory.Delete (fullpath, true); + temporaryRemovedDirectories.Add (directory); + } } catch (PathTooLongException ex) { Log.LogErrorFromException (ex); @@ -75,10 +78,7 @@ namespace Microsoft.Build.Tasks { } } - removedDirectories = new ITaskItem [temporaryRemovedDirectories.Count]; - int i = 0; - foreach (ITaskItem directory in temporaryRemovedDirectories) - removedDirectories [i++] = directory; + removedDirectories = temporaryRemovedDirectories.ToArray (); return true; } @@ -105,4 +105,4 @@ namespace Microsoft.Build.Tasks { } } -#endif \ No newline at end of file +#endif