除了循环遍历SPFolder中的文件以确定是否存在文件名(字符串)之外,还有其他方法吗?如何确定文件是否存在于SharePoint SPFolder中
16
A
回答
27
你可以,如果你知道这个网址的使用SPFile.Exists属性如下:
using (SPSite site = new SPSite("http://server/site"))
using (SPWeb web = site.OpenWeb())
{
SPFile file = web.GetFile("/site/doclib/folder/filename.ext");
if (file.Exists)
{
...
}
}
一会就首先想到假设SPWeb.GetFile抛出一个异常,如果该文件不存在。但是,正如你所看到的情况并非如此 - 它实际上会返回一个SPFile对象。
1
使用CAML查询是最有效的方法(example here)
CAML可以是一个有点笨拙,所以也值得看Linq to Sharepoint提供商,它从你隐藏CAML的细节了。
10
但是,如果你正在使用SP 2010客户端OM,它实际上将抛出一个异常,如果该文件不存在:
using(var clientContext = new ClientContext(site))
{
Web web = clientContext.Web;
Microsoft.SharePoint.Client.File file = web.GetFileByServerRelativeUrl("/site/doclib/folder/filename.ext");
bool bExists = false;
try
{
clientContext.Load(file);
clientContext.ExecuteQuery(); //Raises exception if the file doesn't exist
bExists = file.Exists; //may not be needed - here for good measure
}
catch{ }
if (bExists)
{
.
.
}
}
+0
异常通常是引起试图做背景.Load(文件)。如果该文件不存在,则无法加载完整对象,以便测试本身打破结果。 如果使用clientContext.Load(file,f => f.Exists)替换clientContext.Load(file),则不会引发异常。 – 2017-01-24 20:20:23
相关问题
- 1. 如何确定文件夹是否嵌套在SharePoint列表中
- 2. 如何确定文件夹是否已存在于innosetup
- 3. 如何确定文件是否在本地存储在Java中?
- 4. 确定文件夹是否存在?
- 5. 确定是否存在XDocument文件
- 6. Sharepoint:通过webservices检查项目是否存在于sharepoint list子文件夹中?
- 7. 确定一个文件列表是否存在于Haskell
- 8. 如何确定文件是否是Eclipse中的文本文件
- 9. 如何确定列名是否存在于ResultSet中?
- 10. 如何确定记录是否存在于javafx的tableview中
- 11. 如何确定函数是否存在于POSIX shell中?
- 12. 如何确定隐式转换是否存在于C#中?
- 13. 如何确定是否存在带有ftp url的文件?
- 14. 如何检查文件是否存在于war文件中?
- 15. 如何确定文件是否存在使用VBA Excel 2007?
- 16. 如何确定服务器上是否存在Internet文件?
- 17. 如何确定Toolpart是否在SharePoint Designer中运行
- 18. 如何检查文件是否存在于特定的URL?
- 19. 如何确定Selenium是否存在WebElement?
- 20. 如何确定文件是否为空?
- 21. 确定存储过程是否存在于任何地方?
- 22. Solr:确定文档是否存在
- 23. React - 如何确定特定的子组件是否存在?
- 24. SharePoint 2007,如何检查文档库中是否存在文件夹
- 25. 如何检查文件是否存在于生成文件
- 26. 如何确定给定文件是否为xml valide文件
- 27. 如何确定文件存在于公共目录中Laravel 5.2
- 28. 确定是否存在dll
- 29. 确定URL是否存在?
- 30. 根据字符串路径确定文件是否存在于C中
为我工作,谢谢 – User5590 2016-10-18 09:25:29