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
253 #if !TARGET_JVM // We don't support yet the Process class.
\r
255 [Category("NotDotNet")]
\r
256 public void ExistsAccessDenied ()
\r
260 if (Path.DirectorySeparatorChar == '\\')
\r
261 return; // this test does not work on Windows.
\r
263 string path = TempFolder + DSC + "ExistsAccessDenied";
\r
265 Directory.CreateDirectory (path);
\r
266 Process.Start ("/bin/chmod", "000 " + path).WaitForExit ();
\r
268 Assert.IsFalse (Directory.Exists(path + DSC + "b"));
\r
270 Process.Start ("/bin/chmod", "755 " + path).WaitForExit ();
\r
271 Directory.Delete (path);
\r
277 [ExpectedException(typeof(ArgumentNullException))]
\r
279 [Category("NotWorking")]
\r
281 public void GetCreationTimeException1 ()
\r
283 Directory.GetCreationTime (null as string);
\r
287 [ExpectedException(typeof(ArgumentException))]
\r
289 [Category("NotWorking")]
\r
291 public void GetCreationTimeException2 ()
\r
293 Directory.GetCreationTime ("");
\r
298 [ExpectedException(typeof(IOException))]
\r
301 [Category("NotWorking")]
\r
303 public void GetCreationTimeException_NonExistingPath ()
\r
305 string path = TempFolder + DSC + "DirectoryTest.GetCreationTime.1";
\r
306 DeleteDirectory (path);
\r
308 DateTime time = Directory.GetCreationTime (path);
\r
311 DateTime expectedTime = (new DateTime (1601, 1, 1)).ToLocalTime ();
\r
312 Assert.AreEqual (expectedTime.Year, time.Year, "#1");
\r
313 Assert.AreEqual (expectedTime.Month, time.Month, "#2");
\r
314 Assert.AreEqual (expectedTime.Day, time.Day, "#3");
\r
315 Assert.AreEqual (expectedTime.Hour, time.Hour, "#4");
\r
316 Assert.AreEqual (expectedTime.Second, time.Second, "#5");
\r
317 Assert.AreEqual (expectedTime.Millisecond, time.Millisecond, "#6");
\r
320 DeleteDirectory (path);
\r
325 [ExpectedException(typeof(ArgumentException))]
\r
327 [Category("NotWorking")]
\r
329 public void GetCreationTimeException4 ()
\r
331 Directory.GetCreationTime (" ");
\r
335 [ExpectedException(typeof(ArgumentException))]
\r
337 [Category("NotWorking")]
\r
339 public void GetCreationTimeException5 ()
\r
341 Directory.GetCreationTime (Path.InvalidPathChars [0].ToString ());
\r
345 [ExpectedException(typeof(ArgumentNullException))]
\r
347 [Category("NotWorking")]
\r
349 public void GetCreationTimeUtcException1 ()
\r
351 Directory.GetCreationTimeUtc (null as string);
\r
355 [ExpectedException(typeof(ArgumentException))]
\r
357 [Category("NotWorking")]
\r
359 public void GetCreationTimeUtcException2 ()
\r
361 Directory.GetCreationTimeUtc ("");
\r
366 [ExpectedException (typeof (IOException))]
\r
369 [Category("NotWorking")]
\r
371 public void GetCreationTimeUtc_NonExistingPath ()
\r
373 string path = TempFolder + DSC + "DirectoryTest.GetCreationTimeUtc.1";
\r
374 DeleteDirectory (path);
\r
377 DateTime time = Directory.GetCreationTimeUtc (path);
\r
380 Assert.AreEqual (1601, time.Year, "#1");
\r
381 Assert.AreEqual (1, time.Month, "#2");
\r
382 Assert.AreEqual (1, time.Day, "#3");
\r
383 Assert.AreEqual (0, time.Hour, "#4");
\r
384 Assert.AreEqual (0, time.Second, "#5");
\r
385 Assert.AreEqual (0, time.Millisecond, "#6");
\r
388 DeleteDirectory (path);
\r
393 [ExpectedException(typeof(ArgumentException))]
\r
395 [Category("NotWorking")]
\r
397 public void GetCreationTimeUtcException4 ()
\r
399 Directory.GetCreationTimeUtc (" ");
\r
403 [ExpectedException(typeof(ArgumentException))]
\r
405 [Category("NotWorking")]
\r
407 public void GetCreationTimeUtcException5 ()
\r
409 Directory.GetCreationTime (Path.InvalidPathChars [0].ToString ());
\r
413 [ExpectedException(typeof(ArgumentNullException))]
\r
415 [Category("NotWorking")]
\r
417 public void GetLastAccessTime_Null ()
\r
419 Directory.GetLastAccessTime (null as string);
\r
423 [ExpectedException(typeof(ArgumentException))]
\r
425 [Category("NotWorking")]
\r
427 public void GetLastAccessTimeException2 ()
\r
429 Directory.GetLastAccessTime ("");
\r
434 [ExpectedException (typeof (IOException))]
\r
437 [Category("NotWorking")]
\r
439 public void GetLastAccessTime_NonExistingPath ()
\r
441 string path = TempFolder + DSC + "DirectoryTest.GetLastAccessTime.1";
\r
442 DeleteDirectory (path);
\r
445 DateTime time = Directory.GetLastAccessTime (path);
\r
448 DateTime expectedTime = (new DateTime (1601, 1, 1)).ToLocalTime ();
\r
449 Assert.AreEqual (expectedTime.Year, time.Year, "#1");
\r
450 Assert.AreEqual (expectedTime.Month, time.Month, "#2");
\r
451 Assert.AreEqual (expectedTime.Day, time.Day, "#3");
\r
452 Assert.AreEqual (expectedTime.Hour, time.Hour, "#4");
\r
453 Assert.AreEqual (expectedTime.Second, time.Second, "#5");
\r
454 Assert.AreEqual (expectedTime.Millisecond, time.Millisecond, "#6");
\r
457 DeleteDirectory (path);
\r
462 [ExpectedException(typeof(ArgumentException))]
\r
464 [Category("NotWorking")]
\r
466 public void GetLastAccessTimeException4 ()
\r
468 Directory.GetLastAccessTime (" ");
\r
472 [ExpectedException(typeof(ArgumentException))]
\r
474 [Category("NotWorking")]
\r
476 public void GetLastAccessTimeException5 ()
\r
478 Directory.GetLastAccessTime (Path.InvalidPathChars [0].ToString ());
\r
482 [ExpectedException(typeof(ArgumentNullException))]
\r
484 [Category("NotWorking")]
\r
486 public void GetLastAccessTimeUtc_Null ()
\r
488 Directory.GetLastAccessTimeUtc (null as string);
\r
492 [ExpectedException(typeof(ArgumentException))]
\r
494 [Category("NotWorking")]
\r
496 public void GetLastAccessTimeUtcException2 ()
\r
498 Directory.GetLastAccessTimeUtc ("");
\r
503 [ExpectedException (typeof (IOException))]
\r
506 [Category("NotWorking")]
\r
508 public void GetLastAccessTimeUtc_NonExistingPath ()
\r
510 string path = TempFolder + DSC + "DirectoryTest.GetLastAccessTimeUtc.1";
\r
511 DeleteDirectory (path);
\r
513 DateTime time = Directory.GetLastAccessTimeUtc (path);
\r
516 Assert.AreEqual (1601, time.Year, "#1");
\r
517 Assert.AreEqual (1, time.Month, "#2");
\r
518 Assert.AreEqual (1, time.Day, "#3");
\r
519 Assert.AreEqual (0, time.Hour, "#4");
\r
520 Assert.AreEqual (0, time.Second, "#5");
\r
521 Assert.AreEqual (0, time.Millisecond, "#6");
\r
524 DeleteDirectory (path);
\r
529 [ExpectedException(typeof(ArgumentException))]
\r
531 [Category("NotWorking")]
\r
533 public void GetLastAccessTimeUtcException4 ()
\r
535 Directory.GetLastAccessTimeUtc (" ");
\r
539 [ExpectedException(typeof(ArgumentException))]
\r
541 [Category("NotWorking")]
\r
543 public void GetLastAccessTimeUtcException5 ()
\r
545 Directory.GetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString ());
\r
549 [ExpectedException(typeof(ArgumentNullException))]
\r
550 public void GetLastWriteTimeException1 ()
\r
552 Directory.GetLastWriteTime (null as string);
\r
556 [ExpectedException(typeof(ArgumentException))]
\r
557 public void GetLastWriteTimeException2 ()
\r
559 Directory.GetLastWriteTime ("");
\r
564 [ExpectedException (typeof (IOException))]
\r
566 public void GetLastWriteTime_NonExistingPath ()
\r
568 string path = TempFolder + DSC + "DirectoryTest.GetLastWriteTime.1";
\r
569 DeleteDirectory (path);
\r
571 DateTime time = Directory.GetLastWriteTime (path);
\r
574 DateTime expectedTime = (new DateTime (1601, 1, 1)).ToLocalTime ();
\r
575 Assert.AreEqual (expectedTime.Year, time.Year, "#1");
\r
576 Assert.AreEqual (expectedTime.Month, time.Month, "#2");
\r
577 Assert.AreEqual (expectedTime.Day, time.Day, "#3");
\r
578 Assert.AreEqual (expectedTime.Hour, time.Hour, "#4");
\r
579 Assert.AreEqual (expectedTime.Second, time.Second, "#5");
\r
580 Assert.AreEqual (expectedTime.Millisecond, time.Millisecond, "#6");
\r
583 DeleteDirectory (path);
\r
588 [ExpectedException(typeof(ArgumentException))]
\r
589 public void GetLastWriteTimeException4 ()
\r
591 Directory.GetLastWriteTime (" ");
\r
595 [ExpectedException(typeof(ArgumentException))]
\r
596 public void GetLastWriteTimeException5 ()
\r
598 Directory.GetLastWriteTime (Path.InvalidPathChars [0].ToString ());
\r
602 [ExpectedException(typeof(ArgumentNullException))]
\r
603 public void GetLastWriteTimeUtcException1 ()
\r
605 Directory.GetLastWriteTimeUtc (null as string);
\r
609 [ExpectedException(typeof(ArgumentException))]
\r
610 public void GetLastWriteTimeUtcException2 ()
\r
612 Directory.GetLastWriteTimeUtc ("");
\r
617 [ExpectedException (typeof (IOException))]
\r
619 public void GetLastWriteTimeUtc_NonExistingPath ()
\r
621 string path = TempFolder + DSC + "DirectoryTest.GetLastWriteTimeUtc.1";
\r
622 DeleteDirectory (path);
\r
624 DateTime time = Directory.GetLastWriteTimeUtc (path);
\r
627 Assert.AreEqual (1601, time.Year, "#1");
\r
628 Assert.AreEqual (1, time.Month, "#2");
\r
629 Assert.AreEqual (1, time.Day, "#3");
\r
630 Assert.AreEqual (0, time.Hour, "#4");
\r
631 Assert.AreEqual (0, time.Second, "#5");
\r
632 Assert.AreEqual (0, time.Millisecond, "#6");
\r
635 DeleteDirectory (path);
\r
641 [ExpectedException(typeof(ArgumentException))]
\r
642 public void GetLastWriteTimeUtcException4 ()
\r
644 Directory.GetLastWriteTimeUtc (" ");
\r
648 [ExpectedException(typeof(ArgumentException))]
\r
649 public void GetLastWriteTimeUtcException5 ()
\r
651 Directory.GetLastWriteTimeUtc (Path.InvalidPathChars[0].ToString ());
\r
655 public void Move ()
\r
657 string path = TempFolder + DSC + "DirectoryTest.Test.9";
\r
658 string path2 = TempFolder + DSC + "DirectoryTest.Test.10";
\r
659 DeleteDirectory (path);
\r
660 DeleteDirectory (path2);
\r
662 Directory.CreateDirectory (path);
\r
663 Directory.CreateDirectory (path + DSC + "dir");
\r
664 Assert.IsTrue (Directory.Exists (path + DSC + "dir"), "#1");
\r
666 Directory.Move (path, path2);
\r
667 Assert.IsFalse (Directory.Exists (path + DSC + "dir"), "#2");
\r
668 Assert.IsTrue (Directory.Exists (path2 + DSC + "dir"), "#3");
\r
670 DeleteDirectory (path);
\r
671 DeleteDirectory (path2);
\r
672 if (Directory.Exists (path2 + DSC + "dir"))
\r
673 Directory.Delete (path2 + DSC + "dir", true);
\r
678 [ExpectedException(typeof(IOException))]
\r
679 public void MoveException1 ()
\r
681 string path = TempFolder + DSC + "DirectoryTest.Test.8";
\r
682 DeleteDirectory (path);
\r
684 Directory.Move (path, path);
\r
686 DeleteDirectory (path);
\r
691 [ExpectedException(typeof(ArgumentException))]
\r
692 public void MoveException2 ()
\r
694 string path = TempFolder + DSC + "DirectoryTest.Test.11";
\r
695 DeleteDirectory (path);
\r
697 Directory.Move ("", path);
\r
699 DeleteDirectory (path);
\r
704 [ExpectedException(typeof(ArgumentException))]
\r
705 public void MoveException3 ()
\r
707 string path = TempFolder + DSC + "DirectoryTest.Test.12";
\r
708 DeleteDirectory (path);
\r
710 Directory.Move (" ", path);
\r
712 DeleteDirectory (path);
\r
717 [ExpectedException(typeof(ArgumentException))]
\r
718 [Ignore ("On IA64, causes nunit to abort due to bug #76388")]
\r
719 public void MoveException4 ()
\r
721 string path = TempFolder + DSC + "DirectoryTest.Test.13";
\r
722 path += Path.InvalidPathChars [0];
\r
723 string path2 = TempFolder + DSC + "DirectoryTest.Test.13";
\r
724 DeleteDirectory (path);
\r
725 DeleteDirectory (path2);
\r
727 Directory.CreateDirectory (path2);
\r
728 Directory.Move (path2, path);
\r
730 DeleteDirectory (path);
\r
731 DeleteDirectory (path2);
\r
736 [ExpectedException(typeof(DirectoryNotFoundException))]
\r
737 public void MoveException5 ()
\r
739 string path = TempFolder + DSC + "DirectoryTest.Test.14";
\r
740 DeleteDirectory (path);
\r
742 Directory.Move (path, path + "Test.Test");
\r
744 DeleteDirectory (path);
\r
745 DeleteDirectory (path + "Test.Test");
\r
750 [ExpectedException(typeof(IOException))]
\r
751 public void MoveException6 ()
\r
753 string path = TempFolder + DSC + "DirectoryTest.Test.15";
\r
754 DeleteDirectory (path);
\r
756 Directory.CreateDirectory (path);
\r
757 Directory.Move (path, path + DSC + "dir");
\r
759 DeleteDirectory (path);
\r
760 DeleteDirectory (path + DSC + "dir");
\r
765 [ExpectedException(typeof(IOException))]
\r
766 public void MoveException7 ()
\r
768 string path = TempFolder + DSC + "DirectoryTest.Test.16";
\r
769 string path2 = TempFolder + DSC + "DirectoryTest.Test.17";
\r
771 DeleteDirectory (path);
\r
772 DeleteDirectory (path2);
\r
774 Directory.CreateDirectory (path);
\r
775 Directory.CreateDirectory (path2);
\r
776 Directory.Move (path, path2);
\r
778 DeleteDirectory (path);
\r
779 DeleteDirectory (path2);
\r
785 [Category("NotWorking")]
\r
787 public void CreationTime ()
\r
789 // check for Unix platforms - see FAQ for more details
\r
790 // http://www.mono-project.com/FAQ:_Technical#How_to_detect_the_execution_platform_.3F
\r
791 int platform = (int) Environment.OSVersion.Platform;
\r
792 if ((platform == 4) || (platform == 128))
\r
793 Assert.Ignore ("Unix doesn't support CreationTime");
\r
795 string path = TempFolder + DSC + "DirectoryTest.CreationTime.1";
\r
796 DeleteDirectory (path);
\r
799 Directory.CreateDirectory (path);
\r
800 Directory.SetCreationTime (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
802 DateTime time = Directory.GetCreationTime (path);
\r
803 Assert.AreEqual (2003, time.Year, "#A1");
\r
804 Assert.AreEqual (6, time.Month, "#A2");
\r
805 Assert.AreEqual (4, time.Day, "#A3");
\r
806 Assert.AreEqual (6, time.Hour, "#A4");
\r
807 Assert.AreEqual (4, time.Minute, "#A5");
\r
808 Assert.AreEqual (0, time.Second, "#A6");
\r
810 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetCreationTimeUtc (path));
\r
811 Assert.AreEqual (2003, time.Year, "#B1");
\r
812 Assert.AreEqual (6, time.Month, "#B2");
\r
813 Assert.AreEqual (4, time.Day, "#B3");
\r
814 Assert.AreEqual (6, time.Hour, "#B4");
\r
815 Assert.AreEqual (4, time.Minute, "#B5");
\r
816 Assert.AreEqual (0, time.Second, "#B6");
\r
818 Directory.SetCreationTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
819 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetCreationTime (path));
\r
820 Assert.AreEqual (2003, time.Year, "#C1");
\r
821 Assert.AreEqual (6, time.Month, "#C2");
\r
822 Assert.AreEqual (4, time.Day, "#C3");
\r
823 Assert.AreEqual (6, time.Hour, "#C4");
\r
824 Assert.AreEqual (4, time.Minute, "#C5");
\r
825 Assert.AreEqual (0, time.Second, "#C6");
\r
827 time = Directory.GetCreationTimeUtc (path);
\r
828 Assert.AreEqual (2003, time.Year, "#D1");
\r
829 Assert.AreEqual (6, time.Month, "#D2");
\r
830 Assert.AreEqual (4, time.Day, "#D3");
\r
831 Assert.AreEqual (6, time.Hour, "#D4");
\r
832 Assert.AreEqual (4, time.Minute, "#D5");
\r
833 Assert.AreEqual (0, time.Second, "#D6");
\r
835 DeleteDirectory (path);
\r
841 [Category("NotWorking")]
\r
843 public void LastAccessTime ()
\r
845 string path = TempFolder + DSC + "DirectoryTest.AccessTime.1";
\r
846 DeleteDirectory (path);
\r
849 Directory.CreateDirectory (path);
\r
850 Directory.SetLastAccessTime (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
852 DateTime time = Directory.GetLastAccessTime (path);
\r
853 Assert.AreEqual (2003, time.Year, "#A1");
\r
854 Assert.AreEqual (6, time.Month, "#A2");
\r
855 Assert.AreEqual (4, time.Day, "#A3");
\r
856 Assert.AreEqual (6, time.Hour, "#A4");
\r
857 Assert.AreEqual (4, time.Minute, "#A5");
\r
858 Assert.AreEqual (0, time.Second, "#A6");
\r
860 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetLastAccessTimeUtc (path));
\r
861 Assert.AreEqual (2003, time.Year, "#B1");
\r
862 Assert.AreEqual (6, time.Month, "#B2");
\r
863 Assert.AreEqual (4, time.Day, "#B3");
\r
864 Assert.AreEqual (6, time.Hour, "#B4");
\r
865 Assert.AreEqual (4, time.Minute, "#B5");
\r
866 Assert.AreEqual (0, time.Second, "#B6");
\r
868 Directory.SetLastAccessTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
869 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetLastAccessTime (path));
\r
870 Assert.AreEqual (2003, time.Year, "#C1");
\r
871 Assert.AreEqual (6, time.Month, "#C2");
\r
872 Assert.AreEqual (4, time.Day, "#C3");
\r
873 Assert.AreEqual (6, time.Hour, "#C4");
\r
874 Assert.AreEqual (4, time.Minute, "#C5");
\r
875 Assert.AreEqual (0, time.Second, "#C6");
\r
877 time = Directory.GetLastAccessTimeUtc (path);
\r
878 Assert.AreEqual (2003, time.Year, "#D1");
\r
879 Assert.AreEqual (6, time.Month, "#D2");
\r
880 Assert.AreEqual (4, time.Day, "#D3");
\r
881 Assert.AreEqual (6, time.Hour, "#D4");
\r
882 Assert.AreEqual (4, time.Minute, "#D5");
\r
883 Assert.AreEqual (0, time.Second, "#D6");
\r
885 DeleteDirectory (path);
\r
890 public void LastWriteTime ()
\r
892 string path = TempFolder + DSC + "DirectoryTest.WriteTime.1";
\r
893 DeleteDirectory (path);
\r
896 Directory.CreateDirectory (path);
\r
897 Directory.SetLastWriteTime (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
899 DateTime time = Directory.GetLastWriteTime (path);
\r
900 Assert.AreEqual (2003, time.Year, "#A1");
\r
901 Assert.AreEqual (6, time.Month, "#A2");
\r
902 Assert.AreEqual (4, time.Day, "#A3");
\r
903 Assert.AreEqual (6, time.Hour, "#A4");
\r
904 Assert.AreEqual (4, time.Minute, "#A5");
\r
905 Assert.AreEqual (0, time.Second, "#A6");
\r
907 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetLastWriteTimeUtc (path));
\r
908 Assert.AreEqual (2003, time.Year, "#B1");
\r
909 Assert.AreEqual (6, time.Month, "#B2");
\r
910 Assert.AreEqual (4, time.Day, "#B3");
\r
911 Assert.AreEqual (6, time.Hour, "#B4");
\r
912 Assert.AreEqual (4, time.Minute, "#B5");
\r
913 Assert.AreEqual (0, time.Second, "#B6");
\r
915 Directory.SetLastWriteTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));
\r
916 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetLastWriteTime (path));
\r
917 Assert.AreEqual (2003, time.Year, "#C1");
\r
918 Assert.AreEqual (6, time.Month, "#C2");
\r
919 Assert.AreEqual (4, time.Day, "#C3");
\r
920 Assert.AreEqual (6, time.Hour, "#C4");
\r
921 Assert.AreEqual (4, time.Minute, "#C5");
\r
922 Assert.AreEqual (0, time.Second, "#C6");
\r
924 time = Directory.GetLastWriteTimeUtc (path);
\r
925 Assert.AreEqual (2003, time.Year, "#D1");
\r
926 Assert.AreEqual (6, time.Month, "#D2");
\r
927 Assert.AreEqual (4, time.Day, "#D3");
\r
928 Assert.AreEqual (6, time.Hour, "#D4");
\r
929 Assert.AreEqual (4, time.Minute, "#D5");
\r
930 Assert.AreEqual (0, time.Second, "#D6");
\r
932 DeleteDirectory (path);
\r
937 [ExpectedException(typeof(ArgumentNullException))]
\r
938 public void SetLastWriteTimeException1 ()
\r
940 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
941 Directory.SetLastWriteTime (null as string, time);
\r
945 [ExpectedException(typeof(ArgumentException))]
\r
946 public void SetLastWriteTimeException2 ()
\r
948 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
949 Directory.SetLastWriteTime ("", time);
\r
953 [ExpectedException(typeof(FileNotFoundException))]
\r
954 public void SetLastWriteTimeException3 ()
\r
956 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
957 string path = TempFolder + DSC + "DirectoryTest.SetLastWriteTime.2";
\r
958 DeleteDirectory (path);
\r
960 Directory.SetLastWriteTime (path, time);
\r
962 DeleteDirectory (path);
\r
967 [ExpectedException(typeof(ArgumentException))]
\r
968 public void SetLastWriteTimeException4 ()
\r
970 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
971 Directory.SetLastWriteTime (" ", time);
\r
975 [ExpectedException(typeof(ArgumentException))]
\r
976 public void SetLastWriteTimeException5 ()
\r
978 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
979 Directory.SetLastWriteTime (Path.InvalidPathChars [0].ToString (), time);
\r
983 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
984 // public void SetLastWriteTimeException6 ()
\r
986 // DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);
\r
987 // string path = TempFolder + Path.DirectorySeparatorChar + "DirectoryTest.SetLastWriteTime.1";
\r
990 // if (!Directory.Exists (path))
\r
991 // Directory.CreateDirectory (path);
\r
993 // Directory.SetLastWriteTime (path, time);
\r
995 // DeleteDirectory (path);
\r
1001 [ExpectedException(typeof(ArgumentNullException))]
\r
1002 public void SetLastWriteTimeUtcException1 ()
\r
1004 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1005 Directory.SetLastWriteTimeUtc (null as string, time);
\r
1009 [ExpectedException(typeof(ArgumentException))]
\r
1010 public void SetLastWriteTimeUtcException2 ()
\r
1012 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1013 Directory.SetLastWriteTimeUtc ("", time);
\r
1017 [ExpectedException(typeof(FileNotFoundException))]
\r
1018 public void SetLastWriteTimeUtcException3 ()
\r
1020 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1021 string path = TempFolder + DSC + "DirectoryTest.SetLastWriteTimeUtc.2";
\r
1022 DeleteDirectory (path);
\r
1024 Directory.SetLastWriteTimeUtc (path, time);
\r
1026 DeleteDirectory (path);
\r
1031 [ExpectedException(typeof(ArgumentException))]
\r
1032 public void SetLastWriteTimeUtcException4 ()
\r
1034 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1035 Directory.SetLastWriteTimeUtc (" ", time);
\r
1039 [ExpectedException(typeof(ArgumentException))]
\r
1040 public void SetLastWriteTimeUtcException5 ()
\r
1042 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1043 Directory.SetLastWriteTimeUtc (Path.InvalidPathChars [0].ToString (), time);
\r
1047 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1048 // public void SetLastWriteTimeUtcException6 ()
\r
1050 // DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);
\r
1051 // string path = TempFolder + DSC + "DirectoryTest.SetLastWriteTimeUtc.1";
\r
1053 // if (!Directory.Exists (path))
\r
1054 // Directory.CreateDirectory (path);
\r
1056 // Directory.SetLastWriteTimeUtc (path, time);
\r
1058 // DeleteDirectory (path);
\r
1063 [ExpectedException(typeof(ArgumentNullException))]
\r
1065 [Category("NotWorking")]
\r
1067 public void SetLastAccessTimeException1 ()
\r
1069 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1070 Directory.SetLastAccessTime (null as string, time);
\r
1074 [ExpectedException(typeof(ArgumentException))]
\r
1076 [Category("NotWorking")]
\r
1078 public void SetLastAccessTimeException2 ()
\r
1080 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1081 Directory.SetLastAccessTime ("", time);
\r
1085 [ExpectedException(typeof(FileNotFoundException))]
\r
1087 [Category("NotWorking")]
\r
1089 public void SetLastAccessTimeException3 ()
\r
1091 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1092 string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTime.2";
\r
1093 DeleteDirectory (path);
\r
1095 Directory.SetLastAccessTime (path, time);
\r
1097 DeleteDirectory (path);
\r
1102 [ExpectedException(typeof(ArgumentException))]
\r
1104 [Category("NotWorking")]
\r
1106 public void SetLastAccessTimeException4 ()
\r
1108 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1109 Directory.SetLastAccessTime (" ", time);
\r
1113 [ExpectedException(typeof(ArgumentException))]
\r
1115 [Category("NotWorking")]
\r
1117 public void SetLastAccessTimeException5 ()
\r
1119 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1120 Directory.SetLastAccessTime (Path.InvalidPathChars [0].ToString (), time);
\r
1124 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1125 // public void SetLastAccessTimeException6 ()
\r
1127 // DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);
\r
1128 // string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTime.1";
\r
1130 // if (!Directory.Exists (path))
\r
1131 // Directory.CreateDirectory (path);
\r
1133 // Directory.SetLastAccessTime (path, time);
\r
1135 // DeleteDirectory (path);
\r
1141 [ExpectedException(typeof(ArgumentNullException))]
\r
1143 [Category("NotWorking")]
\r
1145 public void SetLastAccessTimeUtcException1 ()
\r
1147 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1148 Directory.SetLastAccessTimeUtc (null as string, time);
\r
1152 [ExpectedException(typeof(ArgumentException))]
\r
1154 [Category("NotWorking")]
\r
1156 public void SetLastAccessTimeUtcException2 ()
\r
1158 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1159 Directory.SetLastAccessTimeUtc ("", time);
\r
1163 [ExpectedException(typeof(FileNotFoundException))]
\r
1165 [Category("NotWorking")]
\r
1167 public void SetLastAccessTimeUtcException3 ()
\r
1169 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1170 string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.2";
\r
1171 DeleteDirectory (path);
\r
1173 Directory.SetLastAccessTimeUtc (path, time);
\r
1175 DeleteDirectory (path);
\r
1180 [ExpectedException(typeof(ArgumentException))]
\r
1182 [Category("NotWorking")]
\r
1184 public void SetLastAccessTimeUtcException4 ()
\r
1186 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1187 Directory.SetLastAccessTimeUtc (" ", time);
\r
1191 [ExpectedException(typeof(ArgumentException))]
\r
1193 [Category("NotWorking")]
\r
1195 public void SetLastAccessTimeUtcException5 ()
\r
1197 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1198 Directory.SetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString (), time);
\r
1202 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1203 // public void SetLastAccessTimeUtcException6 ()
\r
1205 // DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);
\r
1206 // string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.1";
\r
1208 // if (!Directory.Exists (path))
\r
1209 // Directory.CreateDirectory (path);
\r
1211 // Directory.SetLastAccessTimeUtc (path, time);
\r
1213 // DeleteDirectory (path);
\r
1218 [ExpectedException(typeof(ArgumentNullException))]
\r
1220 [Category("NotWorking")]
\r
1222 public void SetCreationTimeException1 ()
\r
1224 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1225 Directory.SetCreationTime (null as string, time);
\r
1229 [ExpectedException(typeof(ArgumentException))]
\r
1231 [Category("NotWorking")]
\r
1233 public void SetCreationTimeException2 ()
\r
1235 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1236 Directory.SetCreationTime ("", time);
\r
1240 [ExpectedException(typeof(FileNotFoundException))]
\r
1242 [Category("NotWorking")]
\r
1244 public void SetCreationTimeException3 ()
\r
1246 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1247 string path = TempFolder + DSC + "DirectoryTest.SetCreationTime.2";
\r
1248 DeleteDirectory (path);
\r
1251 Directory.SetCreationTime (path, time);
\r
1253 DeleteDirectory (path);
\r
1258 [ExpectedException(typeof(ArgumentException))]
\r
1260 [Category("NotWorking")]
\r
1262 public void SetCreationTimeException4 ()
\r
1264 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1265 Directory.SetCreationTime (" ", time);
\r
1269 [ExpectedException(typeof(ArgumentException))]
\r
1271 [Category("NotWorking")]
\r
1273 public void SetCreationTimeException5 ()
\r
1275 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1276 Directory.SetCreationTime (Path.InvalidPathChars [0].ToString (), time);
\r
1280 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1281 // public void SetCreationTimeException6 ()
\r
1283 // DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);
\r
1284 // string path = TempFolder + DSC + "DirectoryTest.SetCreationTime.1";
\r
1286 // if (!Directory.Exists (path))
\r
1287 // Directory.CreateDirectory (path);
\r
1289 // Directory.SetCreationTime (path, time);
\r
1290 // DeleteDirectory (path);
\r
1292 // DeleteDirectory (path);
\r
1298 [ExpectedException(typeof(ArgumentNullException))]
\r
1300 [Category("NotWorking")]
\r
1302 public void SetCreationTimeUtcException1 ()
\r
1304 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1305 Directory.SetCreationTimeUtc (null as string, time);
\r
1309 [ExpectedException(typeof(ArgumentException))]
\r
1311 [Category("NotWorking")]
\r
1313 public void SetCreationTimeUtcException2 ()
\r
1315 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1316 Directory.SetCreationTimeUtc ("", time);
\r
1320 [ExpectedException(typeof(FileNotFoundException))]
\r
1322 [Category("NotWorking")]
\r
1324 public void SetCreationTimeUtcException3 ()
\r
1326 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1327 string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.2";
\r
1328 DeleteDirectory (path);
\r
1331 Directory.SetCreationTimeUtc (path, time);
\r
1332 DeleteDirectory (path);
\r
1334 DeleteDirectory (path);
\r
1339 [ExpectedException(typeof(ArgumentException))]
\r
1341 [Category("NotWorking")]
\r
1343 public void SetCreationTimeUtcException4 ()
\r
1345 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1346 Directory.SetCreationTimeUtc (" ", time);
\r
1350 [ExpectedException(typeof(ArgumentException))]
\r
1352 [Category("NotWorking")]
\r
1354 public void SetCreationTimeUtcException5 ()
\r
1356 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);
\r
1357 Directory.SetCreationTimeUtc (Path.InvalidPathChars [0].ToString (), time);
\r
1361 // [ExpectedException(typeof(ArgumentOutOfRangeException))]
\r
1362 // public void SetCreationTimeUtcException6 ()
\r
1364 // DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);
\r
1365 // string path = TempFolder + DSC + "DirectoryTest.SetLastAccessTimeUtc.1";
\r
1367 // if (!Directory.Exists (path))
\r
1368 // Directory.CreateDirectory (path);
\r
1370 // Directory.SetCreationTimeUtc (path, time);
\r
1371 // DeleteDirectory (path);
\r
1373 // DeleteDirectory (path);
\r
1378 public void GetDirectories ()
\r
1380 string path = TempFolder;
\r
1381 string DirPath = TempFolder + Path.DirectorySeparatorChar + ".GetDirectories";
\r
1382 DeleteDirectory (DirPath);
\r
1385 Directory.CreateDirectory (DirPath);
\r
1387 string [] dirs = Directory.GetDirectories (path);
\r
1389 foreach (string directory in dirs) {
\r
1391 if (directory == DirPath)
\r
1395 Assert.Fail ("Directory Not Found");
\r
1397 DeleteDirectory (DirPath);
\r
1402 public void GetParentOfRootDirectory ()
\r
1404 DirectoryInfo info;
\r
1406 info = Directory.GetParent (Path.GetPathRoot (Path.GetTempPath ()));
\r
1407 Assert.IsNull (info);
\r
1411 public void GetFiles ()
\r
1413 string path = TempFolder;
\r
1414 string DirPath = TempFolder + Path.DirectorySeparatorChar + ".GetFiles";
\r
1415 if (File.Exists (DirPath))
\r
1416 File.Delete (DirPath);
\r
1419 File.Create (DirPath).Close ();
\r
1420 string [] files = Directory.GetFiles (TempFolder);
\r
1421 foreach (string directory in files) {
\r
1423 if (directory == DirPath)
\r
1427 Assert.Fail ("File Not Found");
\r
1429 if (File.Exists (DirPath))
\r
1430 File.Delete (DirPath);
\r
1435 [ExpectedException (typeof (ArgumentNullException))]
\r
1436 public void SetCurrentDirectoryNull ()
\r
1438 Directory.SetCurrentDirectory (null);
\r
1442 [ExpectedException (typeof (ArgumentException))]
\r
1443 public void SetCurrentDirectoryEmpty ()
\r
1445 Directory.SetCurrentDirectory (String.Empty);
\r
1449 [ExpectedException (typeof (ArgumentException))]
\r
1450 public void SetCurrentDirectoryWhitespace ()
\r
1452 Directory.SetCurrentDirectory (" ");
\r
1457 public void GetNoFiles () // Bug 58875. This throwed an exception on windows.
\r
1459 DirectoryInfo dir = new DirectoryInfo (".");
\r
1460 dir.GetFiles ("*.nonext");
\r
1464 public void FilenameOnly () // bug 78209
\r
1466 Directory.GetParent ("somefile");
\r
1469 private void DeleteDirectory (string path)
\r
1471 if (Directory.Exists (path))
\r
1472 Directory.Delete (path, true);
\r
1475 private void DeleteFile (string path)
\r
1477 if (File.Exists (path))
\r
1478 File.Delete (path);
\r