FileIO.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // -----------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. // -----------------------------------------------------------------------
  4. using System;
  5. using System.Reflection;
  6. using System.UnitTesting;
  7. namespace System.IO
  8. {
  9. public static class FileIO
  10. {
  11. public const string RootTemporaryDirectoryName = "RootTempDirectory";
  12. private static string _temporaryDirectory;
  13. public static string GetRootTemporaryDirectory()
  14. {
  15. if (_temporaryDirectory == null)
  16. {
  17. #if SILVERLIGHT
  18. string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), RootTemporaryDirectoryName);
  19. #else
  20. string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, RootTemporaryDirectoryName);
  21. #endif
  22. if (!Directory.Exists(path))
  23. {
  24. Directory.CreateDirectory(path);
  25. }
  26. _temporaryDirectory = path;
  27. }
  28. return _temporaryDirectory;
  29. }
  30. public static string GetNewTemporaryDirectory()
  31. {
  32. string path = Path.Combine(GetRootTemporaryDirectory(), TestServices.GenerateRandomString());
  33. Directory.CreateDirectory(path);
  34. return path;
  35. }
  36. public static string GetTemporaryFileName(string extension)
  37. {
  38. return Path.Combine(GetRootTemporaryDirectory(), TestServices.GenerateRandomString() + "." + extension);
  39. }
  40. }
  41. }