Прикрепить файлы к письму С++, С/СLI, MS VS 2017

disker

Гуру форума
Регистрация
28 Авг 2007
Сообщения
626
Реакции
67
Поставил MS VS 2017, решил немного подучить С++, но столкнулся с незнанием как прикрепить текстовые файлы к письму если файлов несколько штук и они находятся в папке (к примеру d:\files\ ). Отправка посредством SMTP (отправку пустого письма уже реализовал, это не проблема, позже кину сюда код, как буду на работе).

Сам алгоритм приблизительно понимаю, но как перенести в код не могу разобраться. Алгоритм хочу использовать такой: находим папку, считываем количество файлов (забегая наперед скажу, что нашел уже наполовину готовую функцию в MS VS2017, но ошибки не разрешают доработать программу), по счетчику прикрепляем их к письму (хотя вариант со счетчиком может и не нужен после появления кода ниже в 2017). Итак код дающий листинг файлов в папке (надеюсь именно это он делает, на забугорном сайте именно так он расписан) :

Код:
#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;

int main()
{
    std::string path = "/path/to/directory";
    for (const auto & entry : fs::directory_iterator(path))
        std::cout << entry.path() << std::endl;
}

Ткните носом куда зацепиться и с чего начать.. :)
 
Последнее редактирование:
В общем, тему можно закрывать. Как оказалось - в 2017 студии данная функция хоть и описана, но пока не работает, так как считается експериментальной и нужно чтобы заработала прописывать в начале файла experimental (точно не помню как, так как проект на работе, а пишу с домашнего ПК, но только так удалось заставить работать эту связку). В конечном итоге я от неё отказался, взял более старый пример на основе GetFiles, может кому пригодится пример вот такой (код полностью рабочий, проверял) :

Код:
array<String^>^ files = IO::Directory::GetFiles("d:\\files", "*.txt");
    for each (String^ file in files)
    {
         Attachment^ dan = gcnew Attachment(file, MediaTypeNames::Application::Octet);
         Message->Attachments->Add(dan);
    }
 
Назад
Сверху