检查是否存在具有名称的文件,而不是使用其他名称保存

时间:2013-04-09 12:16:41

标签: c# sharepoint outlook save filenames

我目前正在开发一个Outlook Addin,可以在线保存电子邮件到sharepoint, 但在保存之前我需要检查一个同名的文件是否已经存在,这样就不会覆盖任何东西,这里是保存文件的方法:

            {
            currExplorer = OutlookApp.ActiveExplorer();
            selection = currExplorer.Selection;
            if (selection != null)
            {
                SharePointHelper spHelper = new SharePointHelper("LoginName", "Password", "Url/FolderDirectory");
                if (selection.Count > 0)
                {
                    for (int i = 1; i <= selection.Count; i++)
                    {
                        var item = selection[i] as Outlook.MailItem;
                        if (item == null) 
                            continue;

                        // Check for attachments and save
                        currMail = item;

                        string fileName = String.Format("{0} - {1}.msg", SafeFileName(currMail.SenderName), SafeFileName(currMail.Subject));
                        string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), fileName);
                        currMail.SaveAs(filePath, Outlook.OlSaveAsType.olMSG);

                        System.Net.HttpStatusCode status = spHelper.UploadFile(filePath, fileName); 
                        if (status != System.Net.HttpStatusCode.Created)
                            MessageBox.Show(fileName + " failed to upload.");
                    }
                }
            }
        }

因为我是初学者,所以缺乏如何去做的经验, 非常感谢您的帮助,谢谢大家!

3 个答案:

答案 0 :(得分:1)

您可以使用System.IO.File.Exists(字符串路径)来确定它是否存在。 如果是,则可以更改其名称并测试新名称是否已存在,直到找到尚未使用的名称为止。

您可以在msdn:http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx

上查看文档

答案 1 :(得分:0)

如果要检查SharePoint文件,可以查看使用Microsoft.SharePoint.Client.Web和方法GetFileByServerRelativeUrl(string serverRelativeUrl) GetFileByServerRelativeUrl

Getting sharepoint excel file from sharepoit libraries using Client object model in asp.net

将文件从库加载到对象后,可以进行!= null检查,如果文件不为null,则可以更改文件名。

答案 2 :(得分:0)

使用System.IO.File.Exists(string path)