Это мой код для чтения пользовательских свойств из файла.Это работает на всех типах файлов.но показывает System.Runtime.InteropServices.COMException (0x80004005):
в текстовом документе 2013
неопределенная ошибка (исключение из HRESULT: 0x80004005 (E_FAIL)) System.Runtime.InteropServices.COMException
в текстовом документе 2003
(0x80030005): доступ запрещен.(Исключение из HRESULT: 0x80030005 (STG_E_ACCESSDENIED))
Также правильна ли функция DeleteCustomPropertyThroughDSO
или нет?Я использую DSOFile.dll x86 версии.
private static JObject ReadCustomPropertiesThroughDSO(string fileName)
{
JObject Properties = new JObject();
OleDocumentProperties file = new OleDocumentProperties();
try
{
file.Open(fileName, false, dsoFileOpenOptions.dsoOptionDefault);
foreach (CustomProperty p in file.CustomProperties)
{
Properties.Add(p.Name, p.get_Value().ToString());
}
file.Save();
file.Close();
}
catch (Exception ex)
{
Console.WriteLine("Exception in --> ReadCustomPropertiesThroughDSO: " + ex);
return null;
}
return Properties;
}
private static string DeleteCustomPropertiesThroughDSO(string fileName)
{
OleDocumentProperties file = new OleDocumentProperties();
try
{
file.Open(fileName, false, dsoFileOpenOptions.dsoOptionDefault);
foreach (CustomProperty p in file.CustomProperties)
{
p.Remove();
}
file.Save();
file.Close();
}
catch (Exception ex)
{
Logger.Write_Log("Exception in --> DeleteCustomPropertiesThroughDSO: " + ex);
return FAILURE;
}
return SUCCESS;
}
Я буду рад, если вы направите меня в правильном направлении.Заранее спасибо.Мой вопрос, DSOFile.dll работает для xlsx и pptx.Проблема только для документов Word.