В момент сбора так реализовать не получиться, но можно в момент выполнения шаблона, когда возникает ошибка переносить данные в другой лист или переходить к следующей папке \ файлу.Как бы ещё впихнуть в этот кубик, что когда директория или файл не доступны запихивать в другой лист и продолжать работать? Или что при недоступности какого-то файла или папки пропускать и чтобы кубик продолжал работать
Ошибка возникает во время сбора списка.В момент сбора так реализовать не получиться, но можно в момент выполнения шаблона, когда возникает ошибка переносить данные в другой лист или переходить к следующей папке \ файлу.
Да, действительно во время сбора может возникать ошибка доступа. Я напишу разработчикам, по этому поводу.Ошибка возникает во время сбора списка.
Когда будет кубик сгенерировать список с названием, выбранном по шаблону?
// Путь к директории
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);
}
Как-то через try, catch скорей всего...В связи с тем что стандартными кубиками это не реализовать (работает не так как нужно). Попробуйте все же c# код:
во второй строке замените "directory" на свою переменную, которая есть в проекте (так же в кавычках)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); }
в 4 строке замените "Список файлов" на название вашего списка из проекта.
в 14 строке, список, куда будем складывать результат, очистится перед записью в него результата. Если чистить не нужно, удалите 14 строку
в чем вопрос ?Спасибо, поговорил
Как-то через try, catch скорей всего...
Некоторые папки и файлы не читаются в связи с тем, что доступ к ним не разрешен и тогда через try, catch скорей всего...в чем вопрос ?



