我想从一个SPDocumentLibrary中检索所有文档我尝试过这种方法,但是我遇到了麻烦
using (SPSite mysite = SPContext.Current.Site)
{
using (SPWeb myweb = mysite.OpenWeb())
{
SPDocumentLibrary myDocLib = (SPDocumentLibrary)myweb.Lists["DocLibrary"];
SPList myList = SPContext.Current.List;
SPFileCollection myFiles = myList.;
foreach (SPListItem myItem in myList.Items)
{
//adding each found file to my SPFileCollection
myFiles.Add(myItem.File);
}
}
}但是SPFileCollection.Add函数接受的不仅仅是文件参数!
发布于 2012-10-15 23:42:19
如果我必须猜测:您实际上并不想将它们添加到SPFileCollection中。这样做意味着您正在复制文件,但没有使用方便的复制方法。
您可能只想将它们临时存储在List<SPFile>或类似的文件中。
SharePoint对象库中有许多称为集合的类,但它们不像Systems.Collections命名空间中的类那样使用。
发布于 2016-04-20 15:50:34
再一次
public static bool getAllDocuments()
{
Console.WriteLine("getAllDocuments debug, START");
bool isOK = false;
string baseUrl = "http://jabdw3421:82/sites/TestSite/";
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(baseUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPDocumentLibrary lib = (SPDocumentLibrary)web.Lists["TestLib"];
IEnumerable<SPFile> allFiles = ExploreFolder(lib.RootFolder);
foreach (SPFile file in allFiles)
{
Console.WriteLine("getAllDocuments debug, File Name : " + file.Name);
Console.WriteLine("getAllDocuments debug, File CharSetName : " + file.CharSetName);
Console.WriteLine("getAllDocuments debug, File SourceLeafName : " + file.SourceLeafName);
}
}
}
});
}
catch (Exception e)
{
Console.WriteLine("getAllDocuments debug, " + e.Message);
isOK = false;
}
Console.WriteLine("getAllDocuments debug, END");
return isOK;
}
private static IEnumerable<SPFile> ExploreFolder(SPFolder folder)
{
foreach (SPFile file in folder.Files)
{
yield return file;
}
foreach (SPFolder subFolder in folder.SubFolders)
{
foreach (SPFile file in ExploreFolder(subFolder))
{
yield return file;
}
}
}https://stackoverflow.com/questions/12872825
复制相似问题