DefaultIOService.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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.Open:
  17. return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
  18. case FileStreamModes.Append:
  19. return new FileStream(path, FileMode.Append);
  20. }
  21. throw new NotImplementedException("DefaultIOService.CreateFileStream - mode not implemented: " + mode.ToString());
  22. }
  23. public void DirectoryCreate(string path)
  24. {
  25. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  26. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("DirectoryCreate path: '{0}'", path));
  27. Directory.CreateDirectory(path);
  28. }
  29. public bool DirectoryExists(string path)
  30. {
  31. bool exists = Directory.Exists(path);
  32. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  33. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("DirectoryExists path: '{0}' exists: {1}", path, exists));
  34. return exists;
  35. }
  36. public string[] GetFiles(string path)
  37. {
  38. var files = Directory.GetFiles(path);
  39. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  40. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("GetFiles path: '{0}' files count: {1}", path, files.Length));
  41. return files;
  42. }
  43. public void FileDelete(string path)
  44. {
  45. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  46. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("FileDelete path: '{0}'", path));
  47. File.Delete(path);
  48. }
  49. public bool FileExists(string path)
  50. {
  51. bool exists = File.Exists(path);
  52. if (HTTPManager.Logger.Level == Logger.Loglevels.All)
  53. HTTPManager.Logger.Verbose("DefaultIOService", string.Format("FileExists path: '{0}' exists: {1}", path, exists));
  54. return exists;
  55. }
  56. }
  57. }
  58. #endif