Как я присоединяю файл с очень недружелюбным именем (как файл с Идентификационным номером сессии в нем), но это присоединило как другое имя?
Рассматриваемое имя файла имеет идентификатор сессии в нем для предотвращения имени столкновений на веб-сервере, но когда я присоединяю его к файлу, более дружественное имя предпочтительно.
Существует ли способ присоединить файл с недружелюбным именем как другое имя так, чтобы, когда пользователь получает электронную почту, он мог сказать с имени, каково содержание файла? Я не хотел бы должным быть создать уникальную папку только для помещения не уникального имени файла в него в целях простого присоединения его на электронное письмо.
Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage()
mailMessage.Attachments.Add("C:\My\Code\BESI\BESI\Files\Invoice-djopyynrgek4p4qadn31dxxs.pdf", ????)
Да, вы можете делать то, что вы пытаюсь сделать это с помощью другого конструктора для Attachment (). К сожалению, нет ни одной, которая принимает имя файла и отдельное имя, но есть такая, которая принимает Stream
и отдельное имя. А в System.IO.File
есть вспомогательные методы, которые упрощают получение файлового потока по имени файла.
Imports System.Net.Mail
Imports System.IO
Dim mailMessage as MailMessage = New MailMessage()
Dim stream as FileStream = File.OpenRead("C:\My\Code\BESI\BESI\Files\Invoice-djopyynrgek4p4qadn31dxxs.pdf")
Dim attachment as Attachment = New Attachment(stream, "FriendlyName.pdf")
mailMessage.Attachments.Add(attachment)
'Be sure to Dispose stream after you've sent the mail.
(Мой синтаксис VB слабый, поэтому здесь могут быть некоторые глупые ошибки, но, надеюсь, мой смысл ясен, и это определенно правильные классы / методы для использования.)