私のコードは以下の通りです
static void Main(string[] args)
{
string startPath = @"c:\Temp\att\";
string xmlpath = @"c:\Temp\log\";
var files = Directory.GetFiles(xmlpath, "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".xml"));
foreach (string xml in files)
{
XmlDocument doc = new XmlDocument();
doc.Load(xml);
XmlNodeList Xe = doc.SelectNodes("//FileDump/Message/Attachment");
var Message_ID = doc.SelectSingleNode("//FileDump/Message/MsgID").InnerXml;
foreach (XmlNode Xn in Xe)
{
var linkNode = Xn.SelectSingleNode("FileName");
if (linkNode != null)
{
string link = linkNode.InnerText.Trim();
}
string File_Name = Xn.SelectSingleNode("FileName").InnerXml;
string File_ID = Xn.SelectSingleNode("FileID").InnerXml;
//System.IO.File.Copy(curFile, msgsave, true);
string msgsave = @"c:\Temp\ZIP\" + File_Name;
string curFile = startPath + File_Name;
string bbgfile = xmlpath + "MR_" + Message_ID + ".xml";
string zipfilename = "MR_" + Message_ID + ".zip";
string rkzip = System.IO.Path.Combine(@"C:\Temp\log\", zipfilename);
try
{
using (ZipFile zip = new ZipFile())
{
string zipFileName = System.IO.Path.Combine(@"C:\Temp\log\", "MR_" + Message_ID + ".zip");
zip.AddFile(curFile, "");
zip.AddFile(bbgfile, "");
zip.Save(rkzip);
}
}
問題は次のとおりです。FileNameには複数のファイルがあり、1つのファイルのみを圧縮します。コードをデバッグしようとしましたが、3つのファイルが表示されますが、圧縮されたファイルは1つだけです。誰かが私のコードの何が問題なのかを概説できますか? FileName は、xml ファイル内の添付ファイルのインジケータです。