/// <inheritdoc cref="ISharePointClient.SearchFiles" /> public List<SharePointSearchResult> SearchFiles(string url) { List<SharePointSearchResult> result = new List<SharePointSearchResult>(); IDictionary<string, string> documentMap = GetDocumentMap(); Uri fileUri = new Uri(url); string relativeUrl = @"/" + fileUri.GetComponents(UriComponents.Path, UriFormat.UriEscaped); IEnumerable<KeyValuePair<string, string>> pairs = documentMap .Where(p => p.Key.StartsWith(relativeUrl)); foreach (KeyValuePair<string, string> pair in pairs) { SharePointSearchResult fileInformation = new SharePointSearchResult(); string physicalPathName = Path.Combine(s_SharepointMock, pair.Value); FileSecurity fs = File.GetAccessControl(physicalPathName); IdentityReference sid = fs.GetOwner(typeof(SecurityIdentifier)); IdentityReference ntAccount = sid.Translate(typeof(NTAccount)); fileInformation.Properties.Add("FileName", Uri.UnescapeDataString(Path.GetFileName(pair.Key) ?? string.Empty)); fileInformation.Properties.Add("ServerRelativeUrl", pair.Key); fileInformation.Properties.Add("Description", string.Empty); fileInformation.Properties.Add("MajorVersion", 1); fileInformation.Properties.Add("MinorVersion", 1); fileInformation.Properties.Add("ModifiedBy", ntAccount.Value); fileInformation.Properties.Add("DateModified", File.GetLastWriteTime(physicalPathName)); fileInformation.Properties.Add("CreatedBy", ntAccount.Value); fileInformation.Properties.Add("DateCreated", File.GetCreationTime(physicalPathName)); result.Add(fileInformation); } return result; }
public List<SharePointSearchResult> SearchFiles(string url) { try { using (ClientContext spClientContext = GetSharePointClientContext()) { Web rootWeb = spClientContext.Site.RootWeb; Folder spFolder = rootWeb.GetFolderByServerRelativeUrl(url); // "/Shared%20Documents/MEERTENS%20MATHIEU%20-%2051062002701/Construo/Actua/"); spClientContext.Load(spFolder.Files); spClientContext.ExecuteQuery(); List<SharePointSearchResult> result = new List<SharePointSearchResult>(); foreach (File spFile in spFolder.Files) { var fileInformation = new SharePointSearchResult(); fileInformation.Properties.Add("FileName", spFile.Name); fileInformation.Properties.Add("Description", spFile.CheckInComment); fileInformation.Properties.Add("MajorVersion", spFile.MajorVersion); fileInformation.Properties.Add("MinorVersion", spFile.MinorVersion); fileInformation.Properties.Add("ModifiedBy", spFile.ModifiedBy); fileInformation.Properties.Add("DateModified", spFile.TimeLastModified); fileInformation.Properties.Add("CreatedBy", spFile.Author); fileInformation.Properties.Add("DateCreated", spFile.TimeCreated); fileInformation.Properties.Add("ServerRelativeUrl", spFile.ServerRelativeUrl); result.Add(fileInformation); } return result; } } catch (Exception e) { s_Logger.Error(string.Format("SearchFiles({0}) failed using ClientContext {1}.", url, SharePointSiteUrl), e); throw; } }
/// <inheritdoc cref="ISharePointClient.SearchFiles" /> public List<SharePointSearchResult> SearchFiles(string url) { Uri fileUri = new Uri(url); string pathName = fileUri.GetComponents(UriComponents.Path, UriFormat.SafeUnescaped); List<SharePointSearchResult> result = new List<SharePointSearchResult>(); foreach (string fileName in Directory.GetFiles(pathName)) { SharePointSearchResult fileInformation = new SharePointSearchResult(); fileInformation.Properties.Add("FileName", fileName); result.Add(fileInformation); } return result; }