Directories.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. namespace OpenVIII
  6. {
  7. namespace Movie
  8. {
  9. public sealed class Directories : IReadOnlyList<string>
  10. {
  11. #region Fields
  12. private readonly IReadOnlyList<string> _directories;
  13. #endregion Fields
  14. #region Constructors
  15. private Directories()
  16. {
  17. _directories = new []{
  18. Extended.GetUnixFullPath(Path.Combine(Memory.FF8DirData, "movies")), //this folder has most movies
  19. Extended.GetUnixFullPath(Path.Combine(Memory.FF8DirDataLang, "movies")) //this folder has rest of movies
  20. }.Distinct().ToList().AsReadOnly();
  21. foreach (var s in _directories)
  22. Memory.Log.WriteLine($"{nameof(Movie)} :: {nameof(Directories)} :: {s} ");
  23. }
  24. #endregion Constructors
  25. #region Properties
  26. public static Directories Instance { get; } = new Directories();
  27. public int Count => _directories.Count;
  28. #endregion Properties
  29. #region Indexers
  30. public string this[int i] => _directories[i];
  31. #endregion Indexers
  32. #region Methods
  33. public IEnumerator<string> GetEnumerator() => _directories.GetEnumerator();
  34. IEnumerator IEnumerable.GetEnumerator() => _directories.GetEnumerator();
  35. #endregion Methods
  36. }
  37. }
  38. }