2015-04-29 29 views
0

是否可以訪問資源管理器來檢查是否存在某些文件夾,並根據需要從Outlook插件創建文件夾?如果是這樣的話,從Outlook使用的API /接口是什麼。 MAPIFolder似乎只適用於outlook文件夾。C#Outlook 2013插件訪問資源管理器

在此先感謝

編輯:爲了澄清,我說的是不是Outlook的一部分操作系統文件夾中。我所說的特定文件夾實際上是在域中的文件服務器上。它映射到將使用插件的用戶計算機。他是域用戶並且已經過身份驗證的事實意味着當嘗試從插件訪問文件系統時,我不會遇到任何問題?

+0

您不能使用'System.IO.Directory .Exists(string)'或'System.IO.File.Exists(string)'?請參閱https://msdn.microsoft.com/en-us/library/system.io.directory(v=vs.110).aspx和https://msdn.microsoft.com/en-us/library/system。 io.file(v = vs.110).aspx –

+0

@RonBeyer這需要通過Outlook對象模型來完成 - 它不是文件系統。 Shenk與VSTO或VBA合作? –

+0

你在說Outlook或OS文件夾嗎? –

回答

1

您需要使用System.IO。*用於檢查文件夾是否存在的類。例如,從System.IO命名空間的目錄或文件類的Exists方法確定給定的路徑是否指的是現有目錄/文件在磁盤上:

 if(File.Exists(path)) 
     { 
      // This path is a file 
      ProcessFile(path); 
     }    
     else if(Directory.Exists(path)) 
     { 
      // This path is a directory 
      ProcessDirectory(path); 
     } 
     else 
     { 
      Console.WriteLine("{0} is not a valid file or directory.", path); 
     }   
+0

我正在在我回到辦公桌時自己測試它,但是您知道以這種方式訪問​​域中的網絡驅動器會是一個問題嗎?當計算機加入域時,用戶已經登錄。我會假設沒有問題,因爲它應該像本地目錄一樣起作用,因爲它已被映射,但我不是100%。 – shenk

1

爲什麼你需要Explorer對象?這只是爲顯示 Outlook文件夾。

您可以使用父文件夾對象檢查某個特定文件夾是否存在MAPIFolder.Folders.Item("sub folder name")。如果具有給定名稱的文件夾不存在,一個將引發異常(你的代碼將需要陷阱)

要添加新文件夾,使用MAPIFolder.Folders.Add("sub folder name")

+0

通過資源管理器我的意思是你可以通過Windows資源管理器訪問的文件夾。我需要檢查是否存在一個不屬於Outlook的文件夾,然後我將其保存在那裏,請問這是否適用於不屬於Outlook的文件夾,不在收件箱中發送等等? – shenk

+0

是的。您需要檢查的文件夾相對於其他文件夾(如收件箱)在哪裏? –

+0

我需要檢查的文件夾位於映射網絡驅動器的Outlook外部。 – shenk