Объект предназначен для работы с файловыми директориями. Он позволяет выполнять операции над директориями, хранимыми на диске: получить директории внутри директории, родительские и все дочерние директории, создать новую директорию, удалить существующую, а также получить файлы, находящиеся в директории.

Hierarchy

Properties

Readonly code

code: string

Код приложения цели ссылки (код приложения).

Readonly data

data: Based<Partial<DirectoryData>>

Значения полей объекта.

Readonly fields

fields: Readonly<object>

Описание полей объекта.

Readonly id

id: string

Идентификатор цели ссылки.

Readonly namespace

namespace: string

Пространство имен цели ссылки (код раздела приложения).

Methods

createChildren

  • Метод создает новую директорию в текущей директории.

       //Пример создания новой директории в папке пользователя. Получаем пользователя, получаем его директорию
       //и в ней создаем новую директорию
        let name = "Имя новой директории";
    
        const user = await System.users.getCurrentUser()
    
        const searchDir = await System.directories.search().
            where(di =>di.__id.eq(user.data.__id)).
            first();
        const newDir = await searchDir.createChildren(name);
    

    Parameters

    • name: string

      Имя новой директории.

    Returns Promise<DirectoryItem>

    Объект Директория.

delete

  • delete(): Promise<number>
  • Метод удаляет текущую директорию.

        //Пример удаления всех директорий, созданных пользователем (some user_id)
        const searchDirs = await System.directories.search().
             where(di => di.__createdBy.eq('<some id>')).
             all();
    
       for (let i = 0; i < searchDirs.length; i += 1) {
         await searchDirs[i].delete();
       }
    

    Returns Promise<number>

    Статус ответа.

fetch

  • Запрос полных данных объекта-ссылки.

    Returns Promise<DirectoryItem>

getChildren

  • Метод получает все дочерние директории.

       //Пример получения всех файлов дочерних директорий
       const children = await someDirectory.getChildren();
    
       let allFilesInAllDirs :FileItem[];
    
       parents.forEach(dir => {
         let files = dir.getFiles();
             files.forEach(file =>{
                 allFilesInAllDirs.push(file);
             })
       });
    

    Returns Promise<DirectoryItem[]>

    Массив объектов дочерних директорий.

getChildrens

  • Метод получает все дочерние директории.

       //Пример получения всех файлов дочерних директорий
       const children = await someDirectory.getChildrens();
    
       let allFilesInAllDirs :FileItem[];
    
       parents.forEach(dir => {
         let files = dir.getFiles();
             files.forEach(file =>{
                 allFilesInAllDirs.push(file);
             })
       });
    
    deprecated

    Метод устаревший, избегайте его использования

    Returns Promise<DirectoryItem[]>

    Массив объектов дочерних директорий.

getDirs

  • Метод получает папки в директории первого уровня вложенности.

       // Пример получения всех файлов в дочерних директориях
       const dirsInDir = await someDirectory.getDirs();
       let allFilesInAllDirs :FileItem[];
    
       dirsInDir.forEach(dir => {
         let files = dir.getFiles();
             files.forEach(file =>{
                 allFilesInAllDirs.push(file);
             })
       });
    

    Returns Promise<DirectoryItem[]>

    Массив объектов директорий.

getFiles

  • Метод получает файлы из директории.

       // Пример получения ссылкок на файлы в директории
       const filesInDir = await someDirectory.getFiles();
       filesInDir.forEach(file => file.getDownloadUrl());
    

    Returns Promise<FileItem[]>

    Массив объектов файлов из директории.

getParents

  • Метод получает родителей директории отсортированых по порядку вложенности.

       // Пример формирования пути до директории на основе полученных данных о родительских директориях
       const parents = await someDirectory.getParents();
    
       let pathDir string = "/";
    
       parents.forEach(dir => {
         pathDir = pathDir + dir.data.__name + "/"
       });
    

    Returns Promise<DirectoryItem[]>

    Массив объектов родительских директорий.

normalize

  • normalize(): void
  • Удаление дублирующихся данных в массивах.

    Выполнить удаление дубликатов в полях, в которых хранятся массивы ссылок на объекты системы (пользователи, файлы, элементы приложений, документы).

    Этот метод, например, можно вызвать после массового изменения данных в объекте.

    const app1 = await Context.data.app1.fetch();
    const app2 = await Context.data.app2.fetch();
    
    app1.data.executors.push(app2.data.executors);
    app1.normalize();
    
    // Далее перебираем элементы нового массива
    app1.data.executors.forEach( ... );
    

    Returns void