在替换图像后,C#重新压缩Docx将无法打开

时间:2016-01-19 14:25:27

标签: c# zipfile

更换图像(删除并复制相同名称和扩展名的新图像)后,更改的.docx文件将无法打开。

我从MS Word收到的错误消息:Microsoft Office无法打开此文件,因为某些部分缺失或无效。

此方法可手动操作,解压缩,将图像添加到媒体文件夹中,重新压缩。

问题专栏:

ZipFile.CreateFromDirectory(extractpath, newDoc,CompressionLevel.Optimal, true);

由于手动方法正在运行,我认为上述行导致了问题,我做错了还是有一种首选的重新压缩方法?

完整代码:

string ImagePath = @"\word\media";
            string oldImage = @"\image1.png";
            string newImage = @"C:\Users\per\Desktop\ReBrander\TemplateImage\TODOJO.png";
            string ep = @"C:\Users\per\Desktop\ReBrander\Current";
            string newDoc = ep + @"\ImageChanged.docx";
            string doc = @"C:\Users\per\Desktop\ReBrander\OldDocuments\TestDoc.docx";
            string extractpath = @"C:\Users\per\Desktop\ReBrander\TmpDmp";

            try
            {
                ZipFile.ExtractToDirectory(doc, extractpath);

                string[] filePaths = Directory.GetFiles(extractpath + ImagePath);
                foreach (string fp in filePaths)
                {
                    File.Delete(fp);
                }

                File.Copy(newImage, extractpath + ImagePath + oldImage);

                ZipFile.CreateFromDirectory(extractpath, newDoc,CompressionLevel.Optimal, true);

                return true;
            }
            catch
            {
                return false;
            }

0 个答案:

没有答案