除了循環遍歷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