2 // System.IO.Directory
\r
5 // Ville Palo (vi64pa@kolumbus.fi)
\r
7 // (C) 2003 Ville Palo
\r
9 // TODO: Find out why ArgumentOutOfRange tests does not release directories properly
\r
13 using System.Diagnostics;
\r
14 using System.Globalization;
\r
17 using System.Threading;
\r
19 using NUnit.Framework;
\r
21 namespace MonoTests.System.IO
\r
25 public class DirectoryTest
\r
27 string TempFolder = Path.Combine (Path.GetTempPath (), "MonoTests.System.IO.Tests");
\r
28 static readonly char DSC = Path.DirectorySeparatorChar;
\r
31 public void SetUp ()
\r
33 if (!Directory.Exists (TempFolder))
\r
34 Directory.CreateDirectory (TempFolder);
\r
36 Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-US");
\r
40 public void TearDown () {
\r
41 if (Directory.Exists (TempFolder))
\r
42 Directory.Delete (TempFolder, true);
\r
46 public void CreateDirectory ()
\r
48 string path = TempFolder + DSC + "DirectoryTest.Test.1";
\r
49 DeleteDirectory (path);
\r
51 DirectoryInfo info = Directory.CreateDirectory (path);
\r
52 Assert.IsTrue (info.Exists, "#1");
\r
53 Assert.AreEqual (".1", info.Extension, "#2");
\r
54 Assert.IsTrue (info.FullName.EndsWith ("DirectoryTest.Test.1"), "#3");
\r
55 Assert.AreEqual ("DirectoryTest.Test.1", info.Name, "#4");
\r
57 DeleteDirectory (path);
\r
62 public void CreateDirectoryNotSupportedException ()
\r
64 DeleteDirectory (":");
\r
66 DirectoryInfo info = Directory.CreateDirectory (":");
\r
68 } catch (ArgumentException) {
\r
70 DeleteDirectory (":");
\r
74 [ExpectedException(typeof(ArgumentNullException))]
\r
75 public void CreateDirectoryArgumentNullException ()
\r
77 DirectoryInfo info = Directory.CreateDirectory (null as string);
\r
81 [ExpectedException(typeof(ArgumentException))]
\r
82 public void CreateDirectoryArgumentException1 ()
\r
84 DirectoryInfo info = Directory.CreateDirectory ("");
\r
88 [ExpectedException(typeof(ArgumentException))]
\r
89 public void CreateDirectoryArgumentException2 ()
\r
91 DirectoryInfo info = Directory.CreateDirectory (" ");
\r
95 [ExpectedException(typeof(ArgumentException))]
\r
96 public void CreateDirectoryArgumentException3 ()
\r
98 string path = TempFolder + DSC + "DirectoryTest.Test";
\r
99 DeleteDirectory (path);
\r
103 DirectoryInfo info = Directory.CreateDirectory (path);
\r
105 DeleteDirectory (path);
\r
110 public void CreateDirectoryAlreadyExists ()
\r
112 string path = TempFolder + DSC + "DirectoryTest.Test.Exists";
\r
113 DeleteDirectory (path);
\r
115 DirectoryInfo info1 = Directory.CreateDirectory (path);
\r
116 DirectoryInfo info2 = Directory.CreateDirectory (path);
\r
118 Assert.IsTrue (info2.Exists, "#1");
\r
119 Assert.IsTrue (info2.FullName.EndsWith ("DirectoryTest.Test.Exists"), "#2");
\r
120 Assert.AreEqual ("DirectoryTest.Test.Exists", info2.Name, "#3");
\r
122 DeleteDirectory (path);
\r
127 public void CreateDirectoryAlreadyExistsAsFile ()
\r
129 string path = TempFolder + DSC + "DirectoryTest.Test.ExistsAsFile";
\r
130 DeleteDirectory (path);
\r
133 FileStream fstream = File.Create (path);
\r
136 DirectoryInfo dinfo = Directory.CreateDirectory (path);
\r
138 Assert.Fail ("#1");
\r
139 } catch (IOException ex) {
\r
140 Assert.AreEqual (typeof (IOException), ex.GetType (), "#2");
\r
141 Assert.IsNotNull (ex.Message, "#3");
\r
142 Assert.IsNull (ex.InnerException, "#4");
\r
144 Assert.IsFalse (dinfo.Exists, "#2");
\r
145 Assert.IsTrue (dinfo.FullName.EndsWith ("DirectoryTest.Test.ExistsAsFile"), "#3");
\r
146 Assert.AreEqual ("DirectoryTest.Test.ExistsAsFile", dinfo.Name, "#4");
\r
149 DeleteDirectory (path);
\r
155 public void Delete ()
\r
157 string path = TempFolder + DSC + "DirectoryTest.Test.Delete.1";
\r
158 DeleteDirectory (path);
\r
160 Directory.CreateDirectory (path);
\r
161 Assert.IsTrue (Directory.Exists (path), "#1");
\r
163 Directory.CreateDirectory (path + DSC + "DirectoryTest.Test.Delete.1.2");
\r
164 Assert.IsTrue (Directory.Exists (path + DSC + "DirectoryTest.Test.Delete.1.2"), "#2");
\r
166 Directory.Delete (path + DSC + "DirectoryTest.Test.Delete.1.2");
\r
167 Assert.IsFalse (Directory.Exists (path + DSC + "DirectoryTest.Test.Delete.1.2"), "#3");
\r
168 Assert.IsTrue (Directory.Exists (path), "#4");
\r
170 Directory.Delete (path);
\r
171 Assert.IsFalse (Directory.Exists (path + DSC + "DirectoryTest.Test.Delete.1.2"), "#5");
\r
172 Assert.IsFalse (Directory.Exists (path), "#6");
\r
174 Directory.CreateDirectory (path);
\r
175 Directory.CreateDirectory (path + DSC + "DirectoryTest.Test.Delete.1.2");
\r
176 Assert.IsTrue (Directory.Exists (path + DSC + "DirectoryTest.Test.Delete.1.2"), "#7");
\r
177 Assert.IsTrue (Directory.Exists (path), "#8");
\r
179 Directory.Delete (path, true);
\r
180 Assert.IsFalse (Directory.Exists (path + DSC + "DirectoryTest.Test.Delete.1.2"), "#9");
\r
181 Assert.IsFalse (Directory.Exists (path), "#10");
\r
183 DeleteDirectory (path);
\r
188 [ExpectedException(typeof(ArgumentException))]
\r
189 public void DeleteArgumentException ()
\r
191 Directory.Delete ("");
\r
195 [ExpectedException(typeof(ArgumentException))]
\r
196 public void DeleteArgumentException2 ()
\r
198 Directory.Delete (" ");
\r
202 [ExpectedException(typeof(ArgumentException))]
\r
203 public void DeleteArgumentException3 ()
\r
205 string path = TempFolder + DSC + "DirectoryTest.Test.4";
\r
206 DeleteDirectory (path);
\r
208 path += Path.InvalidPathChars [0];
\r
209 Directory.Delete (path);
\r
213 [ExpectedException(typeof(ArgumentNullException))]
\r
214 public void DeleteArgumentNullException ()
\r
216 Directory.Delete (null as string);
\r
220 [ExpectedException(typeof(DirectoryNotFoundException))]
\r
221 public void DeleteDirectoryNotFoundException ()
\r
223 string path = TempFolder + DSC + "DirectoryTest.Test.5";
\r
224 DeleteDirectory (path);
\r
226 Directory.Delete (path);
\r
230 [ExpectedException(typeof(IOException))]
\r
231 public void DeleteArgumentException4 ()
\r
233 string path = TempFolder + DSC + "DirectoryTest.Test.6";
\r
234 DeleteDirectory (path);
\r
235 FileStream s = null;
\r
236 Directory.CreateDirectory (path);
\r
238 s = File.Create (path + DSC + "DirectoryTest.Test.6");
\r
239 Directory.Delete (path);
\r
243 DeleteDirectory (path);
\r
248 public void Exists ()
\r
250 Assert.IsFalse (Directory.Exists (null as string));
\r
254 [Category("NotDotNet")]
\r
255 public void ExistsAccessDenied ()
\r
259 if (Path.DirectorySeparatorChar == '\\')
\r
260 return; // this test does not work on Windows.
\r
262 string path = TempFolder + DSC + "ExistsAccessDenied";
\r
264 Directory.CreateDirectory (path);
\r
265 Process.Start ("/bin/chmod", "000 " + path).WaitForExit ();
\r
267 Assert.IsFalse (Directory.Exists(path + DSC + "b"));
\r
269 Process.Start ("/bin/chmod", "755 " + path).WaitForExit ();
\r
270 Directory.Delete (path);
\r
275 [ExpectedException(typeof(ArgumentNullException))]
\r
277 [Category("NotWorking")]
\r
279 public void GetCreationTimeException1 ()
\r
281 Directory.GetCreationTime (null as string);
\r
285 [ExpectedException(typeof(ArgumentException))]
\r
287 [Category("NotWorking")]
\r
289 public void GetCreationTimeException2 ()
\r
291 Directory.GetCreationTime ("");
\r
296 [ExpectedException(typeof(IOException))]
\r
299 [Category("NotWorking")]
\r
301 public void GetCreationTimeException_NonExistingPath ()
\r
303 string path = TempFolder + DSC + "DirectoryTest.GetCreationTime.1";
\r
304 DeleteDirectory (path);
\r
306 DateTime time = Directory.GetCreationTime (path);
\r
309 DateTime expectedTime = (new DateTime (1601, 1, 1)).ToLocalTime ();
\r
310 Assert.AreEqual (expectedTime.Year, time.Year, "#1");
\r
311 Assert.AreEqual (expectedTime.Month, time.Month, "#2");
\r
312 Assert.AreEqual (expectedTime.Day, time.Day, "#3");
\r
313 Assert.AreEqual (expectedTime.Hour, time.Hour, "#4");
\r
314 Assert.AreEqual (expectedTime.Second, time.Second, "#5");
\r
315 Assert.AreEqual (expectedTime.Millisecond, time.Millisecond, "#6");
\r
318 DeleteDirectory (path);
\r
323 [ExpectedException(typeof(ArgumentException))]
\r
325 [Category("NotWorking")]
\r
327 public void GetCreationTimeException4 ()
\r
329 Directory.GetCreationTime (" ");
\r
333 [ExpectedException(typeof(ArgumentException))]
\r
335 [Category("NotWorking")]
\r
337 public void GetCreationTimeException5 ()
\r
339 Directory.GetCreationTime (Path.InvalidPathChars [0].ToString ());
\r
343 [ExpectedException(typeof(ArgumentNullException))]
\r
345 [Category("NotWorking")]
\r
347 public void GetCreationTimeUtcException1 ()
\r
349 Directory.GetCreationTimeUtc (null as string);
\r
353 [ExpectedException(typeof(ArgumentException))]
\r
355 [Category("NotWorking")]
\r
357 public void GetCreationTimeUtcException2 ()
\r
359 Directory.GetCreationTimeUtc ("");
\r
364 [ExpectedException (typeof (IOException))]
\r
367 [Category("NotWorking")]
\r
369 public void GetCreationTimeUtc_NonExistingPath ()
\r
371 string path = TempFolder + DSC + "DirectoryTest.GetCreationTimeUtc.1";
\r
372 DeleteDirectory (path);
\r
375 DateTime time = Directory.GetCreationTimeUtc (path);
\r
378 Assert.AreEqual (1601, time.Year, "#1");
\r
379 Assert.AreEqual (1, time.Month, "#2");
\r
380 Assert.AreEqual (1, time.Day, "#3");
\r
381 Assert.AreEqual (0, time.Hour, "#4");
\r
382 Assert.AreEqual (0, time.Second, "#5");
\r
383 Assert.AreEqual (0, time.Millisecond, "#6");
\r
386 DeleteDirectory (path);
\r
391 [ExpectedException(typeof(ArgumentException))]
\r
393 [Category("NotWorking")]
\r
395 public void GetCreationTimeUtcException4 ()
\r
397 Directory.GetCreationTimeUtc (" ");
\r
401 [ExpectedException(typeof(ArgumentException))]
\r
403 [Category("NotWorking")]
\r
405 public void GetCreationTimeUtcException5 ()
\r
407 Directory.GetCreationTime (Path.InvalidPathChars [0].ToString ());
\r
411 [ExpectedException(typeof(ArgumentNullException))]
\r
413 [Category("NotWorking")]
\r
415 public void GetLastAccessTime_Null ()
\r
417 Directory.GetLastAccessTime (null as string);
\r
421 [ExpectedException(typeof(ArgumentException))]
\r
423 [Category("NotWorking")]
\r
425 public void GetLastAccessTimeException2 ()
\r
427 Directory.GetLastAccessTime ("");
\r
432 [ExpectedException (typeof (IOException))]
\r
435 [Category("NotWorking")]
\r
437 public void GetLastAccessTime_NonExistingPath ()
\r
439 string path = TempFolder + DSC + "DirectoryTest.GetLastAccessTime.1";
\r
440 DeleteDirectory (path);
\r
443 DateTime time = Directory.GetLastAccessTime (path);
\r
446 DateTime expectedTime = (new DateTime (1601, 1, 1)).ToLocalTime ();
\r
447 Assert.AreEqual (expectedTime.Year, time.Year, "#1");
\r
448 Assert.AreEqual (expectedTime.Month, time.Month, "#2");
\r
449 Assert.AreEqual (expectedTime.Day, time.Day, "#3");
\r
450 Assert.AreEqual (expectedTime.Hour, time.Hour, "#4");
\r
451 Assert.AreEqual (expectedTime.Second, time.Second, "#5");
\r
452 Assert.AreEqual (expectedTime.Millisecond, time.Millisecond, "#6");
\r
455 DeleteDirectory (path);
\r
460 [ExpectedException(typeof(ArgumentException))]
\r
462 [Category("NotWorking")]
\r
464 public void GetLastAccessTimeException4 ()
\r
466 Directory.GetLastAccessTime (" ");
\r
470 [ExpectedException(typeof(ArgumentException))]
\r
472 [Category("NotWorking")]
\r
474 public void GetLastAccessTimeException5 ()
\r
476 Directory.GetLastAccessTime (Path.InvalidPathChars [0].ToString ());
\r
480 [ExpectedException(typeof(ArgumentNullException))]
\r
482 [Category("NotWorking")]
\r
484 public void GetLastAccessTimeUtc_Null ()
\r
486 Directory.GetLastAccessTimeUtc (null as string);
\r
490 [ExpectedException(typeof(ArgumentException))]
\r
492 [Category("NotWorking")]
\r
494 public void GetLastAccessTimeUtcException2 ()
\r
496 Directory.GetLastAccessTimeUtc ("");
\r
501 [ExpectedException (typeof (IOException))]
\r
504 [Category("NotWorking")]
\r
506 public void GetLastAccessTimeUtc_NonExistingPath ()
\r
508 string path = TempFolder + DSC + "DirectoryTest.GetLastAccessTimeUtc.1";
\r
509 DeleteDirectory (path);
\r
511 DateTime time = Directory.GetLastAccessTimeUtc (path);
\r
514 Assert.AreEqual (1601, time.Year, "#1");
\r
515 Assert.AreEqual (1, time.Month, "#2");
\r
516 Assert.AreEqual (1, time.Day, "#3");
\r
517 Assert.AreEqual (0, time.Hour, "#4");
\r
518 Assert.AreEqual (0, time.Second, "#5");
\r
519 Assert.AreEqual (0, time.Millisecond, "#6");
\r
522 DeleteDirectory (path);
\r
527 [ExpectedException(typeof(ArgumentException))]
\r
529 [Category("NotWorking")]
\r
531 public void GetLastAccessTimeUtcException4 ()
\r
533 Directory.GetLastAccessTimeUtc (" ");
\r
537 [ExpectedException(typeof(ArgumentException))]
\r
539 [Category("NotWorking")]
\r
541 public void GetLastAccessTimeUtcException5 ()
\r
543 Directory.GetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString ());
\r
547 [ExpectedException(typeof(ArgumentNullException))]
\r
548 public void GetLastWriteTimeException1 ()
\r
550 Directory.GetLastWriteTime (null as string);
\r
554 [ExpectedException(typeof(ArgumentException))]
\r
555 public void GetLastWriteTimeException2 ()
\r
557 Directory.GetLastWriteTime ("");
\r
562 [ExpectedException (typeof (IOException))]
\r
564 public void GetLastWriteTime_NonExistingPath ()
\r
566 string path = TempFolder + DSC + "DirectoryTest.GetLastWriteTime.1";
\r
567 DeleteDirectory (path);
\r
569 DateTime time = Directory.GetLastWriteTime (path);
\r
572 DateTime expectedTime = (new DateTime (1601, 1, 1)).ToLocalTime ();
\r
573 Assert.AreEqual (expectedTime.Year, time.Year, "#1");
\r
574 Assert.AreEqual (expectedTime.Month, time.Month, "#2");
\r
575 Assert.AreEqual (expectedTime.Day, time.Day, "#3");
\r
576 Assert.AreEqual (expectedTime.Hour, time.Hour, "#4");
\r
577 Assert.AreEqual (expectedTime.Second, time.Second, "#5");
\r
578 Assert.AreEqual (expectedTime.Millisecond, time.Millisecond, "#6");
\r
581 DeleteDirectory (path);
\r
586 [ExpectedException(typeof(ArgumentException))]
\r
587 public void GetLastWriteTimeException4 ()
\r
589 Directory.GetLastWriteTime (" ");
\r
593 [ExpectedException(typeof(ArgumentException))]
\r
594 public void GetLastWriteTimeException5 ()
\r
596 Directory.GetLastWriteTime (Path.InvalidPathChars [0].ToString ());
\r
600 [ExpectedException(typeof(ArgumentNullException))]
\r
601 public void GetLastWriteTimeUtcException1 ()
\r
603 Directory.GetLastWriteTimeUtc (null as string);
\r
607 [ExpectedException(typeof(ArgumentException))]
\r
608 public void GetLastWriteTimeUtcException2 ()
\r
610 Directory.GetLastWriteTimeUtc ("");
\r
615 [ExpectedException (typeof (IOException))]
\r
617 public void GetLastWriteTimeUtc_NonExistingPath ()
\r
619 string path = TempFolder + DSC + "DirectoryTest.GetLastWriteTimeUtc.1";
\r
620 DeleteDirectory (path);
\r
622 DateTime time = Directory.GetLastWriteTimeUtc (path);
\r
625 Assert.AreEqual (1601, time.Year, "#1");
\r
626 Assert.AreEqual (1, time.Month, "#2");
\r
627 Assert.AreEqual (1, time.Day, "#3");
\r
628 Assert.AreEqual (0, time.Hour, "#4");
\r
629 Assert.AreEqual (0, time.Second, "#5");
\r
630 Assert.AreEqual (0, time.Millisecond, "#6");
\r
633 DeleteDirectory (path);
\r
639 [ExpectedException(typeof(ArgumentException))]
\r
640 public void GetLastWriteTimeUtcException4 ()
\r
642 Directory.GetLastWriteTimeUtc (" ");
\r
646 [ExpectedException(typeof(ArgumentException))]
\r
647 public void GetLastWriteTimeUtcException5 ()
\r
649 Directory.GetLastWriteTimeUtc (Path.InvalidPathChars[0].ToString ());
\r
653 public void Move ()
\r
655 string path = TempFolder + DSC + "DirectoryTest.Test.9";
\r
656 string path2 = TempFolder + DSC + "DirectoryTest.Test.10";
\r
657 DeleteDirectory (path);
\r
658 DeleteDirectory (path2);
\r
660 Directory.CreateDirectory (path);
\r
661 Directory.CreateDirectory (path + DSC + "dir");
\r
662 Assert.IsTrue (Directory.Exists (path + DSC + "dir"), "#1");
\r
664 Directory.Move (path, path2);
\r
665 Assert.IsFalse (Directory.Exists (path + DSC + "dir"), "#2");
\r
666 Assert.IsTrue (Directory.Exists (path2 + DSC + "dir"), "#3");
\r
668 DeleteDirectory (path);
\r
669 DeleteDirectory (path2);
\r
670 if (Directory.Exists (path2 + DSC + "dir"))
\r
671 Directory.Delete (path2 + DSC + "dir", true);
\r
676 [ExpectedException(typeof(IOException))]
\r
677 public void MoveException1 ()
\r
679 string path = TempFolder + DSC + "DirectoryTest.Test.8";
\r
680 DeleteDirectory (path);
\r
682 Directory.Move (path, path);
\r
684 DeleteDirectory (path);
\r
689 [ExpectedException(typeof(ArgumentException))]
\r
690 public void MoveException2 ()
\r
692 string path = TempFolder + DSC + "DirectoryTest.Test.11";
\r
693 DeleteDirectory (path);
\r
695 Directory.Move ("", path);
\r
697 DeleteDirectory (path);
\r
702 [ExpectedException(typeof(ArgumentException))]
\r
703 public void MoveException3 ()
\r
705 string path = TempFolder + DSC + "DirectoryTest.Test.12";
\r
706 DeleteDirectory (path);
\r
708 Directory.Move (" ", path);
\r
710 DeleteDirectory (path);
\r
715 [ExpectedException(typeof(ArgumentException))]
\r
716 [Ignore ("On IA64, causes nunit to abort due to bug #76388")]
\r
717 public void MoveException4 ()
\r
719 string path = TempFolder + DSC + "DirectoryTest.Test.13";
\r
720 path += Path.InvalidPathChars [0];
\r
721 string path2 = TempFolder + DSC + "DirectoryTest.Test.13";
\r
722 DeleteDirectory (path);
\r
723 DeleteDirectory (path2);
\r
725 Directory.CreateDirectory (path2);
\r
726 Directory.Move (path2, path);
\r
728 DeleteDirectory (path);
\r
729 DeleteDirectory (path2);
\r
734 [ExpectedException(typeof(DirectoryNotFoundException))]
\r
735 public void MoveException5 ()
\r
737 string path = TempFolder + DSC + "DirectoryTest.Test.14";
\r
738 DeleteDirectory (path);
\r
740 Directory.Move (path, path + "Test.Test");
\r
742 DeleteDirectory (path);
\r
743 DeleteDirectory (path + "Test.Test");
\r
748 [ExpectedException(typeof(IOException))]
\r
749 public void MoveException6 ()
\r
751 string path = TempFolder + DSC + "DirectoryTest.Test.15";
\r
752 DeleteDirectory (path);
\r
754 Directory.CreateDirectory (path);
\r
755 Directory.Move (path, path + DSC + "dir");
\r
757 DeleteDirectory (path);
\r
758 DeleteDirectory (path + DSC + "dir");
\r
763 [ExpectedException(typeof(IOException))]
\r
764 public void MoveException7 ()
\r
766 string path = TempFolder + DSC + "DirectoryTest.Test.16";
\r
767 string path2 = TempFolder + DSC + "DirectoryTest.Test.17";
\r
769 DeleteDirectory (path);
\r
770 DeleteDirectory (path2);
\r
772 Directory.CreateDirectory (path);
\r
773 Directory.CreateDirectory (path2);
\r
774 Directory.Move (path, path2);
\r
776 DeleteDirectory (path);
\r
777 DeleteDirectory (path2);
\r
783 [Category("NotWorking")]
\r
785 public void CreationTime ()
\r
787 // check for Unix platforms - see FAQ for more details
\r
788 // http://www.mono-project.com/FAQ:_Technical#How_to_detect_the_execution_platform_.3F
\r
789 int platform = (int) Environment.OSVersion.Platform;
\r
790 if ((platform == 4) || (platform == 128))
\r
791 Assert.Ignore ("Unix doesn't support CreationTime");
\r
793 string path = TempFolder + DSC + "DirectoryTest.CreationTime.1";
\r
794 DeleteDirectory (path);
\r
797 Directory.CreateDirectory (path);
\r
798 Directory.SetCreationTime (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
800 DateTime time = Directory.GetCreationTime (path);
\r
801 Assert.AreEqual (2003, time.Year, "#A1");
\r
802 Assert.AreEqual (6, time.Month, "#A2");
\r
803 Assert.AreEqual (4, time.Day, "#A3");
\r
804 Assert.AreEqual (6, time.Hour, "#A4");
\r
805 Assert.AreEqual (4, time.Minute, "#A5");
\r
806 Assert.AreEqual (0, time.Second, "#A6");
\r
808 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetCreationTimeUtc (path));
\r
809 Assert.AreEqual (2003, time.Year, "#B1");
\r
810 Assert.AreEqual (6, time.Month, "#B2");
\r
811 Assert.AreEqual (4, time.Day, "#B3");
\r
812 Assert.AreEqual (6, time.Hour, "#B4");
\r
813 Assert.AreEqual (4, time.Minute, "#B5");
\r
814 Assert.AreEqual (0, time.Second, "#B6");
\r
816 Directory.SetCreationTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
817 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetCreationTime (path));
\r
818 Assert.AreEqual (2003, time.Year, "#C1");
\r
819 Assert.AreEqual (6, time.Month, "#C2");
\r
820 Assert.AreEqual (4, time.Day, "#C3");
\r
821 Assert.AreEqual (6, time.Hour, "#C4");
\r
822 Assert.AreEqual (4, time.Minute, "#C5");
\r
823 Assert.AreEqual (0, time.Second, "#C6");
\r
825 time = Directory.GetCreationTimeUtc (path);
\r
826 Assert.AreEqual (2003, time.Year, "#D1");
\r
827 Assert.AreEqual (6, time.Month, "#D2");
\r
828 Assert.AreEqual (4, time.Day, "#D3");
\r
829 Assert.AreEqual (6, time.Hour, "#D4");
\r
830 Assert.AreEqual (4, time.Minute, "#D5");
\r
831 Assert.AreEqual (0, time.Second, "#D6");
\r
833 DeleteDirectory (path);
\r
839 [Category("NotWorking")]
\r
841 public void LastAccessTime ()
\r
843 string path = TempFolder + DSC + "DirectoryTest.AccessTime.1";
\r
844 DeleteDirectory (path);
\r
847 Directory.CreateDirectory (path);
\r
848 Directory.SetLastAccessTime (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
850 DateTime time = Directory.GetLastAccessTime (path);
\r
851 Assert.AreEqual (2003, time.Year, "#A1");
\r
852 Assert.AreEqual (6, time.Month, "#A2");
\r
853 Assert.AreEqual (4, time.Day, "#A3");
\r
854 Assert.AreEqual (6, time.Hour, "#A4");
\r
855 Assert.AreEqual (4, time.Minute, "#A5");
\r
856 Assert.AreEqual (0, time.Second, "#A6");
\r
858 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetLastAccessTimeUtc (path));
\r
859 Assert.AreEqual (2003, time.Year, "#B1");
\r
860 Assert.AreEqual (6, time.Month, "#B2");
\r
861 Assert.AreEqual (4, time.Day, "#B3");
\r
862 Assert.AreEqual (6, time.Hour, "#B4");
\r
863 Assert.AreEqual (4, time.Minute, "#B5");
\r
864 Assert.AreEqual (0, time.Second, "#B6");
\r
866 Directory.SetLastAccessTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
867 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetLastAccessTime (path));
\r
868 Assert.AreEqual (2003, time.Year, "#C1");
\r
869 Assert.AreEqual (6, time.Month, "#C2");
\r
870 Assert.AreEqual (4, time.Day, "#C3");
\r
871 Assert.AreEqual (6, time.Hour, "#C4");
\r
872 Assert.AreEqual (4, time.Minute, "#C5");
\r
873 Assert.AreEqual (0, time.Second, "#C6");
\r
875 time = Directory.GetLastAccessTimeUtc (path);
\r
876 Assert.AreEqual (2003, time.Year, "#D1");
\r
877 Assert.AreEqual (6, time.Month, "#D2");
\r
878 Assert.AreEqual (4, time.Day, "#D3");
\r
879 Assert.AreEqual (6, time.Hour, "#D4");
\r
880 Assert.AreEqual (4, time.Minute, "#D5");
\r
881 Assert.AreEqual (0, time.Second, "#D6");
\r
883 DeleteDirectory (path);
\r
888 public void LastWriteTime ()
\r
890 string path = TempFolder + DSC + "DirectoryTest.WriteTime.1";
\r
891 DeleteDirectory (path);
\r
894 Directory.CreateDirectory (path);
\r
895 Directory.SetLastWriteTime (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
897 DateTime time = Directory.GetLastWriteTime (path);
\r
898 Assert.AreEqual (2003, time.Year, "#A1");
\r
899 Assert.AreEqual (6, time.Month, "#A2");
\r
900 Assert.AreEqual (4, time.Day, "#A3");
\r
901 Assert.AreEqual (6, time.Hour, "#A4");
\r
902 Assert.AreEqual (4, time.Minute, "#A5");
\r
903 Assert.AreEqual (0, time.Second, "#A6");
\r
905 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetLastWriteTimeUtc (path));
\r
906 Assert.AreEqual (2003, time.Year, "#B1");
\r
907 Assert.AreEqual (6, time.Month, "#B2");
\r
908 Assert.AreEqual (4, time.Day, "#B3");
\r
909 Assert.AreEqual (6, time.Hour, "#B4");
\r
910 Assert.AreEqual (4, time.Minute, "#B5");
\r
911 Assert.AreEqual (0, time.Second, "#B6");
\r
913 Directory.SetLastWriteTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
914 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetLastWriteTime (path));
\r
915 Assert.AreEqual (2003, time.Year, "#C1");
\r
916 Assert.AreEqual (6, time.Month, "#C2");
\r
917 Assert.AreEqual (4, time.Day, "#C3");
\r
918 Assert.AreEqual (6, time.Hour, "#C4");
\r
919 Assert.AreEqual (4, time.Minute, "#C5");
\r
920 Assert.AreEqual (0, time.Second, "#C6");
\r
922 time = Directory.GetLastWriteTimeUtc (path);
\r
923 Assert.AreEqual (2003, time.Year, "#D1");
\r
924 Assert.AreEqual (6, time.Month, "#D2");
\r
925 Assert.AreEqual (4, time.Day, "#D3");
\r
926 Assert.AreEqual (6, time.Hour, "#D4");
\r
927 Assert.AreEqual (4, time.Minute, "#D5");
\r
928 Assert.AreEqual (0, time.Second, "#D6");
\r
930 DeleteDirectory (path);
\r
935 [ExpectedException(typeof(ArgumentNullException))]
\r
936 public void SetLastWriteTimeException1 ()
\r
938 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
939 Directory.SetLastWriteTime (null as string, time);
\r
943 [ExpectedException(typeof(ArgumentException))]
\r
944 public void SetLastWriteTimeException2 ()
\r
946 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
947 Directory.SetLastWriteTime ("", time);
\r
951 [ExpectedException(typeof(FileNotFoundException))]
\r
952 public void SetLastWriteTimeException3 ()
\r
954 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
955 string path = TempFolder + DSC + "DirectoryTest.SetLastWriteTime.2";
\r
956 DeleteDirectory (path);
\r
958 Directory.SetLastWriteTime (path, time);
\r
960 DeleteDirectory (path);
\r
965 [ExpectedException(typeof(ArgumentException))]
\r
966 public void SetLastWriteTimeException4 ()
\r
968 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
969 Directory.SetLastWriteTime (" ", time);
\r
973 [ExpectedException(typeof(ArgumentException))]
\r
974 public void SetLastWriteTimeException5 ()
\r
976 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
977 Directory.SetLastWriteTime (Path.InvalidPathChars [0].ToString (), time);
\r
981 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
982 // public void SetLastWriteTimeException6 ()
\r
984 // DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);
\r
985 // string path = TempFolder + Path.DirectorySeparatorChar + "DirectoryTest.SetLastWriteTime.1";
\r
988 // if (!Directory.Exists (path))
\r
989 // Directory.CreateDirectory (path);
\r
991 // Directory.SetLastWriteTime (path, time);
\r
993 // DeleteDirectory (path);
\r
999 [ExpectedException(typeof(ArgumentNullException))]
\r
1000 public void SetLastWriteTimeUtcException1 ()
\r
1002 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1003 Directory.SetLastWriteTimeUtc (null as string, time);
\r
1007 [ExpectedException(typeof(ArgumentException))]
\r
1008 public void SetLastWriteTimeUtcException2 ()
\r
1010 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1011 Directory.SetLastWriteTimeUtc ("", time);
\r
1015 [ExpectedException(typeof(FileNotFoundException))]
\r
1016 public void SetLastWriteTimeUtcException3 ()
\r
1018 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1019 string path = TempFolder + DSC + "DirectoryTest.SetLastWriteTimeUtc.2";
\r
1020 DeleteDirectory (path);
\r
1022 Directory.SetLastWriteTimeUtc (path, time);
\r
1024 DeleteDirectory (path);
\r
1029 [ExpectedException(typeof(ArgumentException))]
\r
1030 public void SetLastWriteTimeUtcException4 ()
\r
1032 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1033 Directory.SetLastWriteTimeUtc (" ", time);
\r
1037 [ExpectedException(typeof(ArgumentException))]
\r
1038 public void SetLastWriteTimeUtcException5 ()
\r
1040 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1041 Directory.SetLastWriteTimeUtc (Path.InvalidPathChars [0].ToString (), time);
\r
1045 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1046 // public void SetLastWriteTimeUtcException6 ()
\r
1048 // DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);
\r
1049 // string path = TempFolder + DSC + "DirectoryTest.SetLastWriteTimeUtc.1";
\r
1051 // if (!Directory.Exists (path))
\r
1052 // Directory.CreateDirectory (path);
\r
1054 // Directory.SetLastWriteTimeUtc (path, time);
\r
1056 // DeleteDirectory (path);
\r
1061 [ExpectedException(typeof(ArgumentNullException))]
\r
1063 [Category("NotWorking")]
\r
1065 public void SetLastAccessTimeException1 ()
\r
1067 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1068 Directory.SetLastAccessTime (null as string, time);
\r
1072 [ExpectedException(typeof(ArgumentException))]
\r
1074 [Category("NotWorking")]
\r
1076 public void SetLastAccessTimeException2 ()
\r
1078 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1079 Directory.SetLastAccessTime ("", time);
\r
1083 [ExpectedException(typeof(FileNotFoundException))]
\r
1085 [Category("NotWorking")]
\r
1087 public void SetLastAccessTimeException3 ()
\r
1089 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1090 string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTime.2";
\r
1091 DeleteDirectory (path);
\r
1093 Directory.SetLastAccessTime (path, time);
\r
1095 DeleteDirectory (path);
\r
1100 [ExpectedException(typeof(ArgumentException))]
\r
1102 [Category("NotWorking")]
\r
1104 public void SetLastAccessTimeException4 ()
\r
1106 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1107 Directory.SetLastAccessTime (" ", time);
\r
1111 [ExpectedException(typeof(ArgumentException))]
\r
1113 [Category("NotWorking")]
\r
1115 public void SetLastAccessTimeException5 ()
\r
1117 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1118 Directory.SetLastAccessTime (Path.InvalidPathChars [0].ToString (), time);
\r
1122 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1123 // public void SetLastAccessTimeException6 ()
\r
1125 // DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);
\r
1126 // string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTime.1";
\r
1128 // if (!Directory.Exists (path))
\r
1129 // Directory.CreateDirectory (path);
\r
1131 // Directory.SetLastAccessTime (path, time);
\r
1133 // DeleteDirectory (path);
\r
1139 [ExpectedException(typeof(ArgumentNullException))]
\r
1141 [Category("NotWorking")]
\r
1143 public void SetLastAccessTimeUtcException1 ()
\r
1145 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1146 Directory.SetLastAccessTimeUtc (null as string, time);
\r
1150 [ExpectedException(typeof(ArgumentException))]
\r
1152 [Category("NotWorking")]
\r
1154 public void SetLastAccessTimeUtcException2 ()
\r
1156 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1157 Directory.SetLastAccessTimeUtc ("", time);
\r
1161 [ExpectedException(typeof(FileNotFoundException))]
\r
1163 [Category("NotWorking")]
\r
1165 public void SetLastAccessTimeUtcException3 ()
\r
1167 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1168 string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.2";
\r
1169 DeleteDirectory (path);
\r
1171 Directory.SetLastAccessTimeUtc (path, time);
\r
1173 DeleteDirectory (path);
\r
1178 [ExpectedException(typeof(ArgumentException))]
\r
1180 [Category("NotWorking")]
\r
1182 public void SetLastAccessTimeUtcException4 ()
\r
1184 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1185 Directory.SetLastAccessTimeUtc (" ", time);
\r
1189 [ExpectedException(typeof(ArgumentException))]
\r
1191 [Category("NotWorking")]
\r
1193 public void SetLastAccessTimeUtcException5 ()
\r
1195 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1196 Directory.SetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString (), time);
\r
1200 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1201 // public void SetLastAccessTimeUtcException6 ()
\r
1203 // DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);
\r
1204 // string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.1";
\r
1206 // if (!Directory.Exists (path))
\r
1207 // Directory.CreateDirectory (path);
\r
1209 // Directory.SetLastAccessTimeUtc (path, time);
\r
1211 // DeleteDirectory (path);
\r
1216 [ExpectedException(typeof(ArgumentNullException))]
\r
1218 [Category("NotWorking")]
\r
1220 public void SetCreationTimeException1 ()
\r
1222 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1223 Directory.SetCreationTime (null as string, time);
\r
1227 [ExpectedException(typeof(ArgumentException))]
\r
1229 [Category("NotWorking")]
\r
1231 public void SetCreationTimeException2 ()
\r
1233 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1234 Directory.SetCreationTime ("", time);
\r
1238 [ExpectedException(typeof(FileNotFoundException))]
\r
1240 [Category("NotWorking")]
\r
1242 public void SetCreationTimeException3 ()
\r
1244 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1245 string path = TempFolder + DSC + "DirectoryTest.SetCreationTime.2";
\r
1246 DeleteDirectory (path);
\r
1249 Directory.SetCreationTime (path, time);
\r
1251 DeleteDirectory (path);
\r
1256 [ExpectedException(typeof(ArgumentException))]
\r
1258 [Category("NotWorking")]
\r
1260 public void SetCreationTimeException4 ()
\r
1262 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1263 Directory.SetCreationTime (" ", time);
\r
1267 [ExpectedException(typeof(ArgumentException))]
\r
1269 [Category("NotWorking")]
\r
1271 public void SetCreationTimeException5 ()
\r
1273 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1274 Directory.SetCreationTime (Path.InvalidPathChars [0].ToString (), time);
\r
1278 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1279 // public void SetCreationTimeException6 ()
\r
1281 // DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);
\r
1282 // string path = TempFolder + DSC + "DirectoryTest.SetCreationTime.1";
\r
1284 // if (!Directory.Exists (path))
\r
1285 // Directory.CreateDirectory (path);
\r
1287 // Directory.SetCreationTime (path, time);
\r
1288 // DeleteDirectory (path);
\r
1290 // DeleteDirectory (path);
\r
1296 [ExpectedException(typeof(ArgumentNullException))]
\r
1298 [Category("NotWorking")]
\r
1300 public void SetCreationTimeUtcException1 ()
\r
1302 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1303 Directory.SetCreationTimeUtc (null as string, time);
\r
1307 [ExpectedException(typeof(ArgumentException))]
\r
1309 [Category("NotWorking")]
\r
1311 public void SetCreationTimeUtcException2 ()
\r
1313 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1314 Directory.SetCreationTimeUtc ("", time);
\r
1318 [ExpectedException(typeof(FileNotFoundException))]
\r
1320 [Category("NotWorking")]
\r
1322 public void SetCreationTimeUtcException3 ()
\r
1324 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1325 string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.2";
\r
1326 DeleteDirectory (path);
\r
1329 Directory.SetCreationTimeUtc (path, time);
\r
1330 DeleteDirectory (path);
\r
1332 DeleteDirectory (path);
\r
1337 [ExpectedException(typeof(ArgumentException))]
\r
1339 [Category("NotWorking")]
\r
1341 public void SetCreationTimeUtcException4 ()
\r
1343 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1344 Directory.SetCreationTimeUtc (" ", time);
\r
1348 [ExpectedException(typeof(ArgumentException))]
\r
1350 [Category("NotWorking")]
\r
1352 public void SetCreationTimeUtcException5 ()
\r
1354 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1355 Directory.SetCreationTimeUtc (Path.InvalidPathChars [0].ToString (), time);
\r
1359 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1360 // public void SetCreationTimeUtcException6 ()
\r
1362 // DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);
\r
1363 // string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.1";
\r
1365 // if (!Directory.Exists (path))
\r
1366 // Directory.CreateDirectory (path);
\r
1368 // Directory.SetCreationTimeUtc (path, time);
\r
1369 // DeleteDirectory (path);
\r
1371 // DeleteDirectory (path);
\r
1376 public void GetDirectories ()
\r
1378 string path = TempFolder;
\r
1379 string DirPath = TempFolder + Path.DirectorySeparatorChar + ".GetDirectories";
\r
1380 DeleteDirectory (DirPath);
\r
1383 Directory.CreateDirectory (DirPath);
\r
1385 string [] dirs = Directory.GetDirectories (path);
\r
1387 foreach (string directory in dirs) {
\r
1389 if (directory == DirPath)
\r
1393 Assert.Fail ("Directory Not Found");
\r
1395 DeleteDirectory (DirPath);
\r
1400 public void GetParentOfRootDirectory ()
\r
1402 DirectoryInfo info;
\r
1404 info = Directory.GetParent (Path.GetPathRoot (Path.GetTempPath ()));
\r
1405 Assert.IsNull (info);
\r
1409 public void GetFiles ()
\r
1411 string path = TempFolder;
\r
1412 string DirPath = TempFolder + Path.DirectorySeparatorChar + ".GetFiles";
\r
1413 if (File.Exists (DirPath))
\r
1414 File.Delete (DirPath);
\r
1417 File.Create (DirPath).Close ();
\r
1418 string [] files = Directory.GetFiles (TempFolder);
\r
1419 foreach (string directory in files) {
\r
1421 if (directory == DirPath)
\r
1425 Assert.Fail ("File Not Found");
\r
1427 if (File.Exists (DirPath))
\r
1428 File.Delete (DirPath);
\r
1433 [ExpectedException (typeof (ArgumentNullException))]
\r
1434 public void SetCurrentDirectoryNull ()
\r
1436 Directory.SetCurrentDirectory (null);
\r
1440 [ExpectedException (typeof (ArgumentException))]
\r
1441 public void SetCurrentDirectoryEmpty ()
\r
1443 Directory.SetCurrentDirectory (String.Empty);
\r
1447 [ExpectedException (typeof (ArgumentException))]
\r
1448 public void SetCurrentDirectoryWhitespace ()
\r
1450 Directory.SetCurrentDirectory (" ");
\r
1455 public void GetNoFiles () // Bug 58875. This throwed an exception on windows.
\r
1457 DirectoryInfo dir = new DirectoryInfo (".");
\r
1458 dir.GetFiles ("*.nonext");
\r
1462 public void FilenameOnly () // bug 78209
\r
1464 Directory.GetParent ("somefile");
\r
1467 private void DeleteDirectory (string path)
\r
1469 if (Directory.Exists (path))
\r
1470 Directory.Delete (path, true);
\r
1473 private void DeleteFile (string path)
\r
1475 if (File.Exists (path))
\r
1476 File.Delete (path);
\r