J'ai construit une petite application Web pour lire des rendez-vous à partir de Outlook Calendar et j'ai utilisé Voici mon code jusqu'à présent: p> Microsoft.Office.interop.outlook code>. Maintenant, je veux pouvoir enregistrer les pièces jointes qui sont à l'intérieur du rendez-vous.
foreach (var item in AppointmentItems) {
for (int i = 1; i <= item.Attachments.Count; i++) {
var Attachment = item.Attachments[i];
string SavePath = Path.Combine(@"D:\SaveTest", Attachment.FileName);
Attachment.SaveAsFile(SavePath);
}
}
3 Réponses :
En supposant que l'attachement existe, filenotfoundexecpe code> est déclenché par une partie non existante de votre chemin. Vous pouvez vérifier si le chemin existe d'abord:
Try
{
return System.IO.Directory.GetAccessControl(@"D:\SaveTest")
.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))
.Cast<System.Security.AccessControl.FileSystemAccessRule>()
.Where(rule => (System.Security.AccessControl.FileSystemRights.Write & rule.FileSystemRights) == System.Security.AccessControl.FileSystemRights.Write)
.Any(rule => rule.AccessControlType == System.Security.AccessControl.AccessControlType.Allow);
} catch(Exception)
{
return false;
}
Je suis à peu près sûr que les droits d'écriture sont là parce que j'ai essayé WriteAlltext et d'autres méthodes d'écriture et de suppression de méthodes pour vérifier si j'ai les droits de lire ou d'écrire, la chose que la pièce jointe est sauvegardée, puis supprimée directement car j'atteigne la pièce jointe. Savesfile (Enregistrer le chemin); EDIT: TYPO
Pouvez-vous jeter un coup d'oeil à ce Stackoverflow.com/questions/ 31072981 / ... ?
System.IO.FilenotfoundFoundExeCense signifie qu'il ne peut pas trouver le fichier que vous recherchez ou le chemin que vous essayez d'enregistrer dans votre cas. Supprimer @ et essayez "d: \ foldername \" + pièce jointe.filename. Bien que l'élimination @ devrait toujours fonctionner, je pense que vous avez besoin d'un opérateur plus. Vous aiderait à poster tout le bloc de code afin que nous puissions comprendre ce qui se passe de haut en bas. p>
3 choses que vous pourriez essayer de faire: p>
Assurez-vous que Répertoire existe P> li>
Vérifiez si vérifier votre Accès en écriture p> li>
ol>
Est-ce que le répertoire D: \ Savetest \ existe?
@mmathis ouais je m'assisais de cela en premier, et je vérifie maintenant si j'ai l'écriture d'accès
Aucune application Office (Outlook incluse) peut être utilisée à partir d'un service (tel que IIS).