2011-06-17 13 views
6

एक्सचेंज 2010 पर एक्सचेंज वेबसाइट्स 1.1 का उपयोग करना शुरू करें। मुझे विशिष्ट फ़ोल्डर्स कैसे ढूंढें और यदि मौजूद नहीं है, तो इसे एक उदाहरण नहीं मिल सकता है। यह कैसे किया जाता है?फ़ोल्डर इनबॉक्स में मौजूद है या नहीं, तो

उत्तर

13

खैर नेट पर नगण्य और अनुसंधान के कुछ दिनों के बाद मैं इसे लगा आउट:

FolderView fv = new FolderView(10); 

var findFoldersResults = service.FindFolders(
    WellKnownFolderName.Inbox, 
    new SearchFilter.SearchFilterCollection(
     LogicalOperator.Or, 
     new SearchFilter.ContainsSubstring(FolderSchema.DisplayName, "ERROR"), new SearchFilter.ContainsSubstring(FolderSchema.DisplayName, "ARCHIVE")), 
    fv); 

foreach (var folder in findFoldersResults) 
{ 
    if (folder is Folder) 
    { 
     if (folder.DisplayName.ToUpper() == "ARCHIVE") 
     { 
      archiveFolderID = folder.Id; 
     } 
     else if (folder.DisplayName.ToUpper() == "ERROR") 
     { 
      errorFolderID = folder.Id; 
     } 

    } 
} 
//if archive folder not found create and assign the variable to the folderID 
if (archiveFolderID == null) 
{ 
    Folder folder = new Folder(service); 
    folder.DisplayName = "ARCHIVE"; 
    folder.Save(WellKnownFolderName.Inbox); 
    archiveFolderID = folder.Id; 
} 
//if error folder not found create and assign the variable to the folderID 
if (errorFolderID == null) 
{ 
    Folder folder = new Folder(service); 
    folder.DisplayName = "ERROR"; 
    folder.Save(WellKnownFolderName.Inbox); 
    errorFolderID = folder.Id; 
} 
+3

शायद आप भी SearchFilter.IsEqualTo इस्तेमाल कर सकते हैं क्योंकि ContainsSubstring "NoERRORS" या "ERRORSNotAllowed" जैसे नामों के साथ फ़ोल्डरों वापस आ जाएगी जबकि IsEqualTo == oparator का उपयोग करता है, इसलिए मूल रूप से आपको अपना स्वयं का '' नहीं करना होगा '(फ़ोल्डर। डिस्प्लेनाम.ऑपरर() == "त्रुटि")' – grapkulec

संबंधित मुद्दे