C#中的Outlook加载项(保存附件并将保存的文件路径的URL引用添加为附件)

时间:2013-03-05 11:14:52

标签: c# winforms com outlook-addin outlook-2007

我正在使用VS 2010& Dot Net Framework 2.0。我在Extensibility中创建了一个项目 - > Outlook的共享加载项。 我想在我的硬盘中保存一个文件(任何文件),删除该附件并将该文件的路径添加为附件,如果用户点击此文件,它应该在我的硬盘中打开该保存的文件。 我能够保存文件,删除附件,但我无法将文件的路径保存为附件 以下是为保存和删除而编写的代码

                if (item is Outlook.MailItem)
                {
                    Outlook.MailItem mi = (Outlook.MailItem)item;
                    if (mi != null)
                    {                            
                        for (int i = 1; i <= mi.Attachments.Count; i++)
                        {
                            string FilePath = @"" + Settings.Default.browseFolderPath + @"\" +
                                mi.Attachments[i].FileName;
                            mi.Attachments[i].SaveAsFile(FilePath);                                
                            mi.Attachments.Remove(i);                                
                            mi.Attachments.Add(creatingLinkToFile(FilePath), Type.Missing, i, Type.Missing);
                            mi.Save();
                        }                           
                    }
                } 


    private string creatingLinkToFile(string url)
    {
        string lnkPath =@"C:\shortcut.lnk";
        WshShellClass shell = new WshShellClass();           
        IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(lnkPath);
        shortcut.TargetPath = @"" + url;
        shortcut.Description = "Trial";
        shortcut.Save();
        return lnkPath;
    }

请允许任何人给我和想法,因为我使用了lnk文件,但这不符合前景。

1 个答案:

答案 0 :(得分:0)

您可以使用具有olByReference的Enumeration OlAttachmentType 如下所示和你的完成。

mi.Attachments.Add(""+[path of file to Attach Reference], OlAttachmentType.olByReference, i, Type.Missing);