Получить файл из любой библиотеки в веб-дереве

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/42108

  •  09-12-2019
  •  | 
  •  

Вопрос

Можно ли использовать некоторые встроенные в SharePoint API для открытия файла, независимо от того, в каком севере и библиотеке это входит?

Пример:

Учитывая файл: /subsitea/publiverifyImages/myimage.jpg Я хочу открыть его и получить элемент списка, но используя это неудачу:

var url = "/subsiteA/PublishingImages/myimage.jpg";
var file = SPContext.Current.Site.RootWeb.GetFile(url);
SPListItem item = file.GetListItem(); //Fails here with item not in library error
.

Естественно, он не будет работать, так как файл не находится в корневом интернет-сети, но есть ли общий способ найти файл, независимо от того, какой веб и библиотеку и извлеките объект SPLISTITEM, связанный с файлом?

Это было полезно?

Решение

Очень похоже на выше, объект SPSite на самом деле помнит URL-адрес, который он был открыт с помощью - так что вам не нужно давать веб-имя.Вы должны быть в состоянии использовать что-то вроде:

string url= "Full URL to File";
using (SPSite site = new SPSite(url)){
  using (SPWeb web = site.OpenWeb()) 
  { 
    SPFile file = web.GetFile(url); 
    SPListItem item = file.ListItemAllFields; 
  }      
}
.

Другие советы

Я не думаю, что можно получить файл таким образом.Я также действительно хотел знать, если это возможно.

Другой способ, вы должны кодировать как:

Использование (SPSite Site= новый SPSITE («YourSiteurl»)) {

using (SPWeb web = site.OpenWeb("subsiteA"))
 {
    SPFile file = web.GetFile("/subsiteA/PublishingImages/myimage.jpg");
    SPListItem item = file.ListItemAllFields;
 }
.

}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top