Файловый менеджер ⚬ 文件管理器 ⚬ File manager
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

120 行
3.8KB

  1. ПерейтиВВыбраннуюЧастьДиректории = мир =>
  2. {
  3. const номер = мир.номерВыбраннойЧастиДиректории;
  4. const части = мир.частиДиректории.slice(0, номер + 1);
  5. мир.директория = части.join("/") + "/";
  6. мир.уведомить("изменили директорию");
  7. };
  8. // // // //
  9. РазбитьДиректориюНаЧасти = мир =>
  10. {
  11. var части = мир.директория.split(/\//);
  12. // Убираем последнюю пустую строку.
  13. части.pop();
  14. мир.частиДиректории = части;
  15. мир.уведомить("изменили части директории");
  16. };
  17. // // // //
  18. УглубитьсяВВыбраннуюДиректорию = мир =>
  19. {
  20. const номер = мир.номерВыбранногоФайла;
  21. const директория = мир.списокФайловТекущейДиректории[номер];
  22. мир.директория = мир.директория + директория + "/";
  23. мир.уведомить("изменили директорию");
  24. };
  25. // // // //
  26. ОпределитьТипВыбранногоФайла = мир =>
  27. {
  28. const номер = мир.номерВыбранногоФайла;
  29. const свойство = мир.свойстваФайловТекущейДиректории[номер];
  30. if (свойство.isDirectory())
  31. {
  32. мир.уведомить("тип выбранного файла директория");
  33. }
  34. else
  35. {
  36. мир.уведомить("тип выбранного файла файл");
  37. }
  38. };
  39. // // // //
  40. ПолучитьСвойстваФайловТекущейДиректории = мир =>
  41. {
  42. const список = мир.списокФайловТекущейДиректории;
  43. (async() => {
  44. try
  45. {
  46. var свойстваФайлов = [];
  47. for (var н in список)
  48. {
  49. const имя = список[н];
  50. const путь = мир.директория + имя;
  51. const свойства = await мир.фс.promises.stat(путь);
  52. свойстваФайлов.push(свойства);
  53. }
  54. мир.свойстваФайловТекущейДиректории = свойстваФайлов;
  55. мир.уведомить("получили свойства файлов текущей директории");
  56. }
  57. catch (ошибка)
  58. {
  59. мир.ошибкаОперацииФС = ошибка.code;
  60. мир.уведомить("ошибка операции файловой системы");
  61. }
  62. })();
  63. };
  64. // // // //
  65. ПолучитьСписокФайловТекущейДиректории = мир =>
  66. {
  67. (async() => {
  68. try
  69. {
  70. const список = await мир.фс.promises.readdir(мир.директория);
  71. мир.списокФайловТекущейДиректории = список;
  72. мир.уведомить("получили список файлов текущей директории");
  73. }
  74. catch (ошибка)
  75. {
  76. мир.ошибкаОперацииФС = ошибка.code;
  77. мир.уведомить("ошибка операции файловой системы");
  78. }
  79. })();
  80. };
  81. // // // //
  82. ЗадатьТекущуюДиректориюКорнем = мир =>
  83. {
  84. мир.директория = "/";
  85. мир.уведомить("изменили директорию");
  86. };
  87. // // // //
  88. СоздатьФайловуюСистему = мир =>
  89. {
  90. мир.фс = new LightningFS("AMYP");
  91. };