C# 将文件夹下的多个文件作为电子邮件附件发送
我想在邮件文件夹中以附件形式发送zip文件。这是我的文件夹结构:C# 将文件夹下的多个文件作为电子邮件附件发送,c#,zip,email-attachments,memorystream,dotnetzip,C#,Zip,Email Attachments,Memorystream,Dotnetzip,我想在邮件文件夹中以附件形式发送zip文件。这是我的文件夹结构: Document => Part1 =>all files. => Part2 =>all files. 通过上述方式,我希望创建一个zip文件名附件,其中我的文档文件夹将包含文件夹第1部分和第2部分 这是我的代码: string item1="1,2"; //document ids string item2="3,4";//document ids MemoryStream me
Document => Part1 =>all files.
=> Part2 =>all files.
通过上述方式,我希望创建一个zip文件名附件,其中我的文档文件夹将包含文件夹第1部分和第2部分
这是我的代码:
string item1="1,2"; //document ids
string item2="3,4";//document ids
MemoryStream memoryStreamOfFile = new MemoryStream();
MemoryStream stream = new MemoryStream();
foreach (var item in item1.Split(','))
{
var File1 = new FileDataResult();
File1 = GetData(item);
stream.Write(File1.FileData.ToArray(), 0,File1.FileData.Length);
stream.Position = 0;
zip.AddEntry(File1.FileData.FileName, stream);
}
foreach (var item in item2.Split(','))
{
var File1 = new FileDataResult();
File1 = GetData(item);
stream.Write(File1.FileData.ToArray(), 0,File1.FileData.Length);
stream.Position = 0;
zip.AddEntry(File1.FileData.FileName, stream);
}
zip.Save(memoryStreamOfFile);
memoryStreamOfFile.Position = 0;
sendmail.SendMail(string From, string To, string Subject, string Body,MemoryStream stream);
mailMessage.Attachments.Add(new Attachment(stream,"ATTachment.zip",MediaTypeNames.Application.Zip));
public static FileDataResult GetData(string DocID)
{
//Database code to fetch binary data from database
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
if (reader[0] == null)
return null;
byte[] raw = (byte[])reader[0];
File.FileData = raw;
File.FileName = reader[1].ToString();
reader.Close();
return File;
}
}
public class FileDataResult
{
public byte[] FileData { get; set; }
public string FileName { get; set; }
}
电子邮件正在顺利进行,但问题是当我提取zip文件,然后我没有得到文件中的任何数据。例如,在图像的情况下,我没有得到图像
尝试以下方法
using (ZipFile zip = new ZipFile())
{
foreach(string file in Directory.GetFiles(folder))
{
zip.AddFile(file, Path.GetFileName(file));
}
zip.Save("test.zip"));
}
尝试如下
using (ZipFile zip = new ZipFile())
{
foreach(string file in Directory.GetFiles(folder))
{
zip.AddFile(file, Path.GetFileName(file));
}
zip.Save("test.zip"));
}
文件扩展名在哪里?你得到了图像。只是,操作系统不知道它是一个映像。尝试指定文件扩展名,如“Abc”+item+“.tiff”,但如何创建我在问题中指定的结构“zip”的类型是什么?如果是IonicZip。如果不是,我相信有一个类似的方法来添加目录。它有一个同名的方法。CreateDirectoryByName(字符串);这将返回另一个ZipEntry,您可以使用它将文件添加到新文件夹。对不起,我的IPhone没有Visual Studio。我记录了你需要的一切。文件扩展名在哪里?你得到了图像。只是,操作系统不知道它是一个映像。尝试指定文件扩展名,如“Abc”+item+“.tiff”,但如何创建我在问题中指定的结构“zip”的类型是什么?如果是IonicZip。如果不是,我相信有一个类似的方法来添加目录。它有一个同名的方法。CreateDirectoryByName(字符串);这将返回另一个ZipEntry,您可以使用它将文件添加到新文件夹。对不起,我的IPhone没有Visual Studio。我记录了您需要的所有内容。我的数据库中保存了二进制数据,因此我通过文档id从数据库中获取二进制数据并从itI创建zip文件。我的数据库中保存了二进制数据,因此我通过文档id从数据库中获取二进制数据并从中创建zip文件