设为首页 收藏本站
查看: 1165|回复: 0

[经验分享] 递归上传文件和文件夹至SharePoint

[复制链接]

尚未签到

发表于 2015-9-29 11:11:14 | 显示全部楼层 |阅读模式
  如果你使用SharePoint 2010的话,可以直接“上传多个文件”。在弹出的对话框中可以直接往里拖放整个文件夹。如下图所示:
DSC0000.png
  如果是SharePoint 2007的话,可以通过“资源管理器”视图,像在资源管理器里管理本地文件一样,拖放文件夹。
  下面介绍的方式是下策。当然下下策就是你手工一个一个的建文件夹上传文件了。下策是你可以通过SharePoint对象模型或Web Services的方式编写一个递归程序来实现从本地文件夹到SharePoint库的上传工作。这里我们演示的是通过对象模型上传到一个SharePoint 2010站点。代码对于SharePoint 2007站点也是可用的。唯一的区别就是32位和64位,相应的.NET Framework版本和Microsoft.SharePoint.dll版本。
DSC0001.png

Microsoft.SharePoint
  引用Microsoft.SharePoint.dll以便访问SharePoint对象模型。

上传文档至文档库





try
{
localPath = txtLocalPath.Text; //本地路径
sharePointSite = txtServerURL.Text; //SharePoint 网站 URL.
documentLibraryName = txtLibrary.Text; // SharePoint文档库名称.
//获取你的SharePoint网站对象.
using (SPSite oSite = new SPSite(sharePointSite))
{
oWeb = oSite.OpenWeb();
CreateDirectories(localPath, oWeb.Folders[documentLibraryName].SubFolders);
}
}
catch (Exception ex)
{
MessageBox.Show("Error:" + ex.Message );
}


CreateDirectories(string path,SPFolderCollection oFolderCollection)

  
CreateDirectories方法是一个递归方法,接收两个参数。path参数指定本地计算机文件系统中的源位置;oFolderCollection参数指定目标文件夹集合。SPFolderCollection的用法参考这里。
  



private void CreateDirectories(string path, SPFolderCollection oFolderCollection)
{
//上传多个文档
foreach (FileInfo oFI in new DirectoryInfo(path).GetFiles())
{
FileStream fileStream = File.OpenRead(oFI.FullName);
SPFile spfile = oFolderCollection.Folder.Files.Add(oFI.Name, fileStream, true);
spfile.Update();
}
//上传多个文件夹
foreach (DirectoryInfo oDI in new DirectoryInfo(path).GetDirectories())
{
string sFolderName = oDI.FullName.Split('\\')[oDI.FullName.Split('\\').Length - 1];
SPFolder spNewFolder = oFolderCollection.Add(sFolderName);
spNewFolder.Update();
//递归调用以创建子文件夹
CreateDirectories(oDI.FullName, spNewFolder.SubFolders);
}
}

本地文件夹


DSC0002.png
SharePoint文档库


DSC0003.png
运行结果


DSC0004.png
限制


  • 准备上传的文件的大小 不能超过2GB
  • 执行该代码的用户需要具备相应文档库的上传权限
  参考资料
  Uploading Files and Folders Recursively to a SharePoint Site

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-120380-1-1.html 上篇帖子: Sharepoint学习笔记—Debug&TroubleShooting--寻找 WSS_Logging下的ULSTraceLog 下篇帖子: Sharepoint学习笔记---SPList--使用Linq to Sharepoint间接查询External List(1.通过BCS创建External
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表