Files
AMYP/60🕸фс🕸.js

129 lines
4.3 KiB
JavaScript

ПерейтиВВыбраннуюЧастьДиректории = мир =>
{
const номер = мир.номерВыбраннойЧастиДиректории;
const части = мир.частиДиректории.slice(0, номер + 1);
console.debug("части для ерехода", части);
мир.директория = части.join("/") + "/";
мир.уведомить("изменили директорию");
console.debug("мир.директория", мир.директория);
};
// // // //
УглубитьсяВВыбраннуюДиректорию = мир =>
{
const номер = мир.номерВыбранногоФайла;
const директория = мир.списокФайловТекущейДиректории[номер];
мир.директория = мир.директория + директория + "/";
мир.уведомить("изменили директорию");
};
// // // //
ОпределитьТипВыбранногоФайла = мир =>
{
const номер = мир.номерВыбранногоФайла;
const свойство = мир.свойстваФайловТекущейДиректории[номер];
if (свойство.isDirectory())
{
мир.уведомить("тип выбранного файла директория");
}
else
{
мир.уведомить("тип выбранного файла файл");
}
};
// // // //
ОтобразитьСписокФайловТекущейДиректории = мир =>
{
var список = [];
const файлы = мир.списокФайловТекущейДиректории;
const свойства = мир.свойстваФайловТекущейДиректории;
for (var н in файлы)
{
const свойство = свойства[н];
const окончание = свойство.isDirectory() ? "/" : "";
const файл = файлы[н] + окончание;
список.push(файл);
}
мир.списокФайлов = список;
мир.уведомить("изменили список файлов");
};
// // // //
ПолучитьСвойстваФайловТекущейДиректории = мир =>
{
const список = мир.списокФайловТекущейДиректории;
(async() => {
try
{
var свойстваФайлов = [];
for (var н in список)
{
const имя = список[н];
const путь = мир.директория + имя;
const свойства = await мир.фс.promises.stat(путь);
свойстваФайлов.push(свойства);
}
мир.свойстваФайловТекущейДиректории = свойстваФайлов;
мир.уведомить("получили свойства файлов текущей директории");
}
catch (ошибка)
{
мир.ошибкаОперацииФС = ошибка.code;
мир.уведомить("ошибка операции файловой системы");
}
})();
};
// // // //
ПолучитьСписокФайловТекущейДиректории = мир =>
{
(async() => {
try
{
const список = await мир.фс.promises.readdir(мир.директория);
мир.списокФайловТекущейДиректории = список;
мир.уведомить("получили список файлов текущей директории");
}
catch (ошибка)
{
мир.ошибкаОперацииФС = ошибка.code;
мир.уведомить("ошибка операции файловой системы");
}
})();
};
// // // //
ЗадатьТекущуюДиректориюКорнем = мир =>
{
мир.директория = "/";
мир.уведомить("изменили директорию");
};
// // // //
СоздатьФайловуюСистему = мир =>
{
мир.фс = new LightningFS("AMYP");
};