Получить информацию о вложениях Outlook в веб-надстройке - PullRequest
0 голосов
/ 10 октября 2019

У меня запущена надстройка Outlook Web в Azure. Я использую контроллер для получения сведений о вложении Outlook с сервера Outlook Exchange (это работает нормально). После того, как я получу информацию о вложении, я вызываю класс .cs для извлечения информации о вложении (имя, размер и т. Д.). Я могу получить имя вложения, но не размер и содержание вложения. См. Код ниже.

Это безумие, я могу получить System.IO.FileInfo и ссылаться на имя, но не на длину - я получаю эту ошибку, когда ссылаюсь на длину Не могу найтифайл 'D: \ home \ site \ wwwroot \ AWS_Knowledge.docx'

Я в полной растерянности - почему я могу получить Имя, а не другую информацию, такую ​​как (длина). Любая помощь будет приветствоваться - спасибо

public static OutLookAttachment(FileAttachment fileAttachment)
{
//I have tried all these differenct approaches to get the file info - 
//the below code return a local D:\.... path
string attachmentName1 = System.IO.Path.GetFileName(fileAttachment.Name);
string attachmentName2 = System.IO.Path.Combine(System.IO.Path.GetTempPath(), 
fileAttachment.FileName);

//I settled with this code since this is running on Azure/Website
//Returns Website D:\home\site\wwwroot\AWS_Knowledge.docx* path/
string attachmentName = 
System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory.ToString(), 
fileAttachment.Name);`

/*get the file info*/
System.IO.FileInfo fi = new System.IO.FileInfo(attachmentName);

/*get file data*/
//this works
string n = fi.Name;

//this works
string fn = fi.FullName;

//I get the error here saying Could not find file 
'D:\home\site\wwwroot\AWS_Knowledge.docx'
long length = fi.Length;

/*if I reference the passed in attachment directly, I get the below results*/

//this works - I get the file name
string fileName = fileAttachment.Name;

//this returns 0 - basically no data
long fielSize = fileAttachment.Size;
}

1 Ответ

0 голосов
/ 17 октября 2019

Я решаю проблему - в основном, получаю путь к сайту и загружаю вложение - не забудьте удалить вложение, чтобы избежать загрузки вашего сайта с вложениями.

// Вот код

// Получить строку пути приложения appPatch = System.IO.Path.Combine (System.AppDomain.CurrentDomain.BaseDirectory.ToString ());

// Загрузить вложение в файл Azure Server fileAttachment.Load(appPatch + fileAttachment.Name);

// Готово с вложением - удалить с сайта System.IO.File.Delete (fileAttachment.FileName);

...