DefaultIOService.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #if !NETFX_CORE //&& (!UNITY_WEBGL || UNITY_EDITOR)
  2. using System;
  3. using System.IO;
  4. namespace BestHTTP.PlatformSupport.FileSystem
  5. {
  6. public sealed class DefaultIOService : IIOService
  7. {
  8. public Stream CreateFileStream(string path, FileStreamModes mode)
  9. {
  10. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  11. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("CreateFileStream path: '{0}' mode: {1}", path, mode));
  12. switch (mode)
  13. {
  14. case FileStreamModes.Create:
  15. return new FileStream(path, FileMode.Create);
  16. case FileStreamModes.OpenRead:
  17. return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
  18. case FileStreamModes.OpenReadWrite:
  19. return new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
  20. case FileStreamModes.Append:
  21. return new FileStream(path, FileMode.Append);
  22. }
  23. throw new NotImplementedException("DefaultIOService.CreateFileStream - mode not implemented: " + mode.ToString());
  24. }
  25. public void DirectoryCreate(string path)
  26. {
  27. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  28. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("DirectoryCreate path: '{0}'", path));
  29. Directory.CreateDirectory(path);
  30. }
  31. public bool DirectoryExists(string path)
  32. {
  33. bool exists = Directory.Exists(path);
  34. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  35. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("DirectoryExists path: '{0}' exists: {1}", path, exists));
  36. return exists;
  37. }
  38. public string[] GetFiles(string path)
  39. {
  40. var files = Directory.GetFiles(path);
  41. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  42. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("GetFiles path: '{0}' files count: {1}", path, files.Length));
  43. return files;
  44. }
  45. public void FileDelete(string path)
  46. {
  47. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  48. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("FileDelete path: '{0}'", path));
  49. File.Delete(path);
  50. }
  51. public bool FileExists(string path)
  52. {
  53. bool exists = File.Exists(path);
  54. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  55. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("FileExists path: '{0}' exists: {1}", path, exists));
  56. return exists;
  57. }
  58. }
  59. }
  60. #endif