在SP中查找文件可以使用webservice,但在多次调用过程中速度会比较慢。
如果超找文件这个功能可以部署在服务器端,而且可以直接调用objectmodel,那么SPQuery是个很好的选择。
下面这个方法就是用使用SPQuery查找指定文档库中的指定文件,需要的参数如下:
webURL 网站地址
libraryName文档库名
filename 文件名
folderName文件所在的文件夹
public static bool IsExsitSPFile(SPQueryOption option)
{
using (SPSite site = new SPSite(option.webUrl))
{
SPWeb spWeb = site.OpenWeb();
SPList list = spWeb.Lists[option.libraryName];
SPQuery query = new SPQuery();
query.ViewAttributes = "Scope=\"Recursive\"";
query.ViewFields = "<FieldRef Name='ows_FileDirRef' /><FieldRef Name='ows_Created' /><FieldRef Name='ows_FileRef' />";
query.ViewFieldsOnly = true;
query.Folder = list.RootFolder.SubFolders[option.folderName];
query.RowLimit = 1;
string QueryString = "<Where>" +
"<Eq><FieldRef Name='FileLeafRef' /><Value Type='File'>" + option.fileName + "</Value></Eq>" +
"</Where>";
query.Query = QueryString;
SPListItemCollection collListItems = list.GetItems(query);
if (collListItems.Count > 0)
{
return true;
}
}
return false;
}
参数SPQueryOption是四个参数对应的实体类。不用这个类可以直接把url,和文件名作入参传入即可。