Directories.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. namespace OpenVIII
  5. {
  6. namespace Movie
  7. {
  8. public struct Directories : IEnumerable<string>
  9. {
  10. #region Fields
  11. private static List<string> s_directories;
  12. #endregion Fields
  13. #region Properties
  14. public int Count => _Directories.Count;
  15. private static List<string> _Directories { get { Init(); return s_directories; } set => s_directories = value; }
  16. #endregion Properties
  17. #region Indexers
  18. public string this[int i] => _Directories[i];
  19. #endregion Indexers
  20. #region Methods
  21. public static void Init()
  22. {
  23. if (s_directories == null /*|| s_directories.Count == 0*/)
  24. {
  25. s_directories = new List<string> {
  26. Extended.GetUnixFullPath(Path.Combine(Memory.FF8DIRdata, "movies")), //this folder has most movies
  27. Extended.GetUnixFullPath(Path.Combine(Memory.FF8DIRdata_lang, "movies")) //this folder has rest of movies
  28. };
  29. }
  30. }
  31. public IEnumerator<string> GetEnumerator() => _Directories.GetEnumerator();
  32. IEnumerator IEnumerable.GetEnumerator() => _Directories.GetEnumerator();
  33. #endregion Methods
  34. }
  35. }
  36. }