Структура файлов и папок в текстовый файл

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43
Как с помощью c# собирать структуру файлов и папок, и сохранять в текстовый файл?

Как можно это сделать не прибегая к c#?
 

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43
Как бы ещё впихнуть в этот кубик, что когда директория или файл не доступны запихивать в другой лист и продолжать работать? Или что при недоступности какого-то файла или папки пропускать и чтобы кубик продолжал работать
 

Dmitriy_Zenno

Administrator
Регистрация
28.10.2025
Сообщения
125
Благодарностей
56
Баллы
28
Как бы ещё впихнуть в этот кубик, что когда директория или файл не доступны запихивать в другой лист и продолжать работать? Или что при недоступности какого-то файла или папки пропускать и чтобы кубик продолжал работать
В момент сбора так реализовать не получиться, но можно в момент выполнения шаблона, когда возникает ошибка переносить данные в другой лист или переходить к следующей папке \ файлу.
 
  • Спасибо
Реакции: lx2003

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43
В момент сбора так реализовать не получиться, но можно в момент выполнения шаблона, когда возникает ошибка переносить данные в другой лист или переходить к следующей папке \ файлу.
Ошибка возникает во время сбора списка.
Когда будет кубик сгенерировать список с названием, выбранном по шаблону?
 

Dmitriy_Zenno

Administrator
Регистрация
28.10.2025
Сообщения
125
Благодарностей
56
Баллы
28
Ошибка возникает во время сбора списка.
Когда будет кубик сгенерировать список с названием, выбранном по шаблону?
Да, действительно во время сбора может возникать ошибка доступа. Я напишу разработчикам, по этому поводу.
 
  • Спасибо
Реакции: lx2003 и Sergodjan

Deisler

Client
Регистрация
26.10.2019
Сообщения
510
Благодарностей
200
Баллы
43
В связи с тем что стандартными кубиками это не реализовать (работает не так как нужно). Попробуйте все же c# код:

C#:
// Путь к директории
string directory = project.Variables["directory"].Value;
// Название списка в проекте
string nameList = "Список файлов";

// Проверяем, что директория существует
if (Directory.Exists(directory))
{

    // Получаем все файлы (включая поддиректории)
    string[] allFiles = Directory.GetFiles(directory, "*", SearchOption.AllDirectories);

    // Очищаем список перед добавлением (если нужно)
    project.Lists[nameList].Clear();

    // Добавляем все файлы в список проекта
    foreach (string file in allFiles)
    {
        project.Lists[nameList].Add(file );
    }

    // Логируем результат
    project.SendToLog($"В список '{nameList }' добавлено файлов: " + allFiles.Length,
    ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true);
}

// Если указанной директории не существует, то сообщение в лог
else
{
    project.SendToLog("Директория не найдена: " + directory,
        ZennoLab.InterfacesLibrary.Enums.Log.LogType.Error, true);
}
во второй строке замените "directory" на свою переменную, которая есть в проекте (так же в кавычках)
в 4 строке замените "Список файлов" на название вашего списка из проекта.

в 14 строке, список, куда будем складывать результат, очистится перед записью в него результата. Если чистить не нужно, удалите 14 строку
 
Последнее редактирование:

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43
Спасибо, поговорил
В связи с тем что стандартными кубиками это не реализовать (работает не так как нужно). Попробуйте все же c# код:

C#:
// Путь к директории
string directory = project.Variables["directory"].Value;
// Название списка в проекте
string nameList = "Список файлов";

// Проверяем, что директория существует
if (Directory.Exists(directory))
{

    // Получаем все файлы (включая поддиректории)
    string[] allFiles = Directory.GetFiles(directory, "*", SearchOption.AllDirectories);

    // Очищаем список перед добавлением (если нужно)
    project.Lists[nameList].Clear();

    // Добавляем все файлы в список проекта
    foreach (string file in allFiles)
    {
        project.Lists[nameList].Add(file );
    }

    // Логируем результат
    project.SendToLog($"В список '{nameList }' добавлено файлов: " + allFiles.Length,
    ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true);
}

// Если указанной директории не существует, то сообщение в лог
else
{
    project.SendToLog("Директория не найдена: " + directory,
        ZennoLab.InterfacesLibrary.Enums.Log.LogType.Error, true);
}
во второй строке замените "directory" на свою переменную, которая есть в проекте (так же в кавычках)
в 4 строке замените "Список файлов" на название вашего списка из проекта.

в 14 строке, список, куда будем складывать результат, очистится перед записью в него результата. Если чистить не нужно, удалите 14 строку
Как-то через try, catch скорей всего...
 

Deisler

Client
Регистрация
26.10.2019
Сообщения
510
Благодарностей
200
Баллы
43

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43

Deisler

Client
Регистрация
26.10.2019
Сообщения
510
Благодарностей
200
Баллы
43
Мое решение не отработало ?

Добавьте больше информации. По какой причине доступ к ним не разрешен ?
 
  • Спасибо
Реакции: lx2003

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 288
Благодарностей
9 900
Баллы
113
Наверное среди служебных системных папок сбор структуры предполагается.
У меня например не получилось поймать выход по красной в занятой/запущенной профиль-папке.
Тут нужна именно тяжелая системная блокировка, наверное.
 
  • Спасибо
Реакции: lx2003

lx2003

Client
Регистрация
15.02.2021
Сообщения
795
Благодарностей
157
Баллы
43
В ИИ нашёл решение, которое пропускает такие файлы и папки и указывает причину почему файл был заблокирован.
Далее после определения блокировки используется соответствующий
 
  • Спасибо
Реакции: Dmitriy_Zenno

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)