SPDocDiscussionCollection Class
Represents the collection of SPDocDiscussion objects associated with documents in a specific document library.
Inheritance Hierarchy
System.Object
Microsoft.SharePoint.Administration.SPAutoSerializingObject
Microsoft.SharePoint.SPBaseCollection
Microsoft.SharePoint.SPDocDiscussionCollection
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class SPDocDiscussionCollection _
Inherits SPBaseCollection
Dim instance As SPDocDiscussionCollection
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPDocDiscussionCollection : SPBaseCollection
Remarks
Use the GetDocDiscussions method of the SPWeb class to return all the document discussions for a specified folder in a site.
Examples
The following code example iterates through the Shared Documents folders of every site in the current site collection and, if the number of comments made in discussions of a document exceeds 10, copies the document into a subfolder within the document library. If the subfolder does not exist, the example creates it.
Dim siteCollection As SPSite = SPContext.Current.Site
Dim sites As SPWebCollection = siteCollection.AllWebs
Dim site As SPWeb
For Each site In sites
Dim discs As SPDocDiscussionCollection
= site.GetDocDiscussions("Shared Documents")
Dim disc As SPDocDiscussion
For Each disc In discs
If disc.CommentCount > 10 Then
Dim files As SPFileCollection
= site.Folders("Shared Documents").Files
Dim subFolders As SPFolderCollection
= site.Folders("Shared Documents").SubFolders
Dim subFolder As SPFolder
= site.GetFolder("Shared Documents/Discussed")
If Not subFolder.Exists Then
subFolder = subFolders.Add
("Shared Documents/Discussed")
End If
Dim urlString As String = disc.DocUrl.ToString()
Dim index As Integer = urlString.LastIndexOf("/")
Dim newUrl As String = urlString.Substring(index)
files(urlString).CopyTo(subFolder.Url + newUrl)
End If
Next disc
Next site
SPSite oSiteCollection = SPContext.Current.Site;
SPWebCollection collWebsites = oSiteCollection.AllWebs;
foreach (SPWeb oWebsite in collWebsites)
{
SPDocDiscussionCollection collDocDiscussions = oWebsite.GetDocDiscussions("Shared Documents");
foreach (SPDocDiscussion oDocDiscussion in collDocDiscussions)
{
if (oDocDiscussion.CommentCount > 10)
{
SPFileCollection collFiles = oWebsite.Folders["Shared Documents"].Files;
SPFolderCollection collFolders = oWebsite.Folders["Shared Documents"].SubFolders;
SPFolder oFolder = oWebsite.GetFolder("Shared Documents/Discussed");
if (!oFolder.Exists)
{
oFolder = collFolders.Add("Shared Documents/Discussed");
}
string strUrl = oDocDiscussion.DocUrl.ToString();
int intIndex = strUrl.LastIndexOf("/");
string strNewUrl = strUrl.Substring(intIndex);
collFiles[strUrl].CopyTo(oFolder.Url + strNewUrl);
}
}
oWebsite.Dispose();
}
Note
Certain objects implement the IDisposable interface, and you must avoid retaining these objects in memory after they are no longer needed. For information about good coding practices, see Best Practices: Using Disposable Windows SharePoint Services Objects.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.