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

  • Автор темы Автор темы lx2003
  • Дата начала Дата начала

lx2003

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

Как можно это сделать не прибегая к c#?
 
Как бы ещё впихнуть в этот кубик, что когда директория или файл не доступны запихивать в другой лист и продолжать работать? Или что при недоступности какого-то файла или папки пропускать и чтобы кубик продолжал работать
 
Как бы ещё впихнуть в этот кубик, что когда директория или файл не доступны запихивать в другой лист и продолжать работать? Или что при недоступности какого-то файла или папки пропускать и чтобы кубик продолжал работать
В момент сбора так реализовать не получиться, но можно в момент выполнения шаблона, когда возникает ошибка переносить данные в другой лист или переходить к следующей папке \ файлу.
 
  • Спасибо
Реакции: lx2003
В момент сбора так реализовать не получиться, но можно в момент выполнения шаблона, когда возникает ошибка переносить данные в другой лист или переходить к следующей папке \ файлу.
Ошибка возникает во время сбора списка.
Когда будет кубик сгенерировать список с названием, выбранном по шаблону?
 
Ошибка возникает во время сбора списка.
Когда будет кубик сгенерировать список с названием, выбранном по шаблону?
Да, действительно во время сбора может возникать ошибка доступа. Я напишу разработчикам, по этому поводу.
 
  • Спасибо
Реакции: lx2003 и Sergodjan
В связи с тем что стандартными кубиками это не реализовать (работает не так как нужно). Попробуйте все же 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 строку
 
Последнее редактирование:
Спасибо, поговорил
В связи с тем что стандартными кубиками это не реализовать (работает не так как нужно). Попробуйте все же 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 скорей всего...
 
Наверное среди служебных системных папок сбор структуры предполагается.
У меня например не получилось поймать выход по красной в занятой/запущенной профиль-папке.
Тут нужна именно тяжелая системная блокировка, наверное.
 
  • Спасибо
Реакции: lx2003
В ИИ нашёл решение, которое пропускает такие файлы и папки и указывает причину почему файл был заблокирован.
Далее после определения блокировки используется соответствующий
 
  • Спасибо
Реакции: Dmitriy_Zenno

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