Я сочинительство кругозора добавить в Мое приложение получает ссылку на объект и сохраняет его как это:.DocumentItem.SaveAs Сохраняет документ, но, как поврежденный файл
string myFileName = "A.docx";
if (myItem is DocumentItem)
{
var docItem = myItem as DocumentItem;
docItem.SaveAs(myFileName);
}
Это будет безопасно док-файл слово " A.docx "во временную папку на моей машине.
Однако, когда я дважды щелкаю по файлу, чтобы открыть его, я получу всплывающее окно, сообщающее мне, что файл поврежден и не может быть открыт. Щелчок по ОК в всплывающем меню предлагает восстановить файл, и если я выберу его, файл будет восстановлен и открыт.
Это заставляет меня поверить, что по какой-то причине DocumentItem.SaveAs() работает не так, как ожидалось, и что он сохраняет файл в поврежденном состоянии.
Любая идея, что не так с кодом выше?
ОБНОВЛЕНИЕ И РЕШЕНИЕ: я понял это (благодаря этому сообщению DocumentItem.SaveAs results in corrupted file). Поскольку почта не объясняет, как это сделать, я размещаю свое решение здесь на случай, если кому-то это понадобится.
Вот что я сделал следующее предложение в посте выше:
string myFileName = "A.docx";
if (myItem is DocumentItem)
{
var docItem = myItem as DocumentItem;
for (var i = 1; i <= docItem.Attachments.Count; i++)
{
var attachment = docItem.Attachments[i];
attachment.SafeAsFile(myFileName);
}
}
Это решило проблему коррупции. Большое спасибо @DmitryStreblechenko
@DavidG Он отображается как «A.docx» в папке, где я его сохраняю. Таким образом, он имеет расширение .docx. Спасибо. – pixel