В ZP не корректно работает C# код

Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Всем привет.
Вылез косяк в Зеннопостер которого нет в PM.
C# код из пути к файлу берет название файла с расширением.
C#:
string fileName = @"{-Variable.in_archive-}";
string result = Path.GetFileName(fileName);
return result;
Но Зеннопостер выводит полный путь к файлу.

Результат работы на скрине
ошибка обработки кода.png


Ранее этой проблемы не было. Сейчас первый раз запустил данный шаблон после перестановки ОС.
Пробовал в версиях 5.22.1, 5.39. 5.41.1
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
C#:
string fileName = @"{-Variable.in_archive-}";
return fileName.Split('\\').Last();
 
  • Спасибо
Реакции: Сибиряк

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 468
Благодарностей
8 689
Баллы
113
Всем привет.
Вылез косяк в Зеннопостер которого нет в PM.
C# код из пути к файлу берет название файла с расширением.
C#:
string fileName = @"{-Variable.in_archive-}";
string result = Path.GetFileName(fileName);
return result;
Но Зеннопостер выводит полный путь к файлу.

Результат работы на скрине


Ранее этой проблемы не было. Сейчас первый раз запустил данный шаблон после перестановки ОС.
Пробовал в версиях 5.22.1, 5.39. 5.41.1
52105


52106
 
  • Спасибо
Реакции: Сибиряк

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 764
Благодарностей
2 407
Баллы
113
v5.40
Код:
string fileName =@"{-Variable.in_archive-}";
string result = Path.GetFileName(fileName);
project.SendInfoToLog(result, true);
На сколько вижу данный код возвращает следующее. Хотя, не перепроверял, что вообще должно вернуть из Path.GetFileName(@"{-Variable.in_archive-}"); - там Зенно не должен идти по пути внутрь, а воспринимать это как строку, и так как эта строка не путь - то возможно должно было бы вернуть ошибку (хотя, не в курсе, что в действительности должно было бы вернуть...).
52108

Когда макросы не используются - возвращает вродебы корректно.
Код:
string fileName = project.Variables["in_archive"].Value;
string result = Path.GetFileName(fileName);
project.SendInfoToLog(result, true);
52110
 
  • Спасибо
Реакции: Сибиряк
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Ребят Всем спасибо.

Заменил переменную с путем до файла и заработало.

C#:
string fileName = project.Variables["in_archive"].Value;
Почему раньше старый код работал не понятно))
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
Это никогда не было правильно для C# в плане макросов.
 

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