private List <Core.Framework.Provisioning.Model.File> EnumerateFiles(string folder, string ctid, Hashtable properties) { var files = new List <Core.Framework.Provisioning.Model.File>(); DirectoryInfo dirInfo = new DirectoryInfo(folder); foreach (var directory in dirInfo.GetDirectories().Where(d => (d.Attributes & FileAttributes.Hidden) == 0)) { files.AddRange(EnumerateFiles(directory.FullName, ctid, properties)); } var fileInfo = dirInfo.GetFiles(Match); foreach (var file in fileInfo.Where(f => (f.Attributes & FileAttributes.Hidden) == 0)) { var unrootedPath = file.FullName.Substring(Folder.Length + 1); var targetFolder = Path.Combine(TargetFolder, unrootedPath.LastIndexOf("\\") > -1 ? unrootedPath.Substring(0, unrootedPath.LastIndexOf("\\")) : ""); targetFolder = targetFolder.Replace('\\', '/'); var modelFile = new Core.Framework.Provisioning.Model.File() { Folder = targetFolder, Overwrite = true, Src = unrootedPath, }; if (ctid != null) { modelFile.Properties.Add("ContentTypeId", ctid); } if (properties != null && properties.Count > 0) { foreach (var key in properties.Keys) { modelFile.Properties.Add(key.ToString(), properties[key].ToString()); } } modelFile.Security = null; files.Add(modelFile); } return(files); }
public bool Validate1605(ProvisioningTemplate template, Microsoft.SharePoint.Client.ClientContext ctx) { var directoryFiles = new List <Core.Framework.Provisioning.Model.File>(); // Get all files from directories foreach (var directory in template.Directories) { var metadataProperties = directory.GetMetadataProperties(); directoryFiles = directory.GetDirectoryFiles(metadataProperties); // Add directory files to template file collection foreach (var dFile in directoryFiles) { var file = new Core.Framework.Provisioning.Model.File(); file.Src = dFile.Src.Replace(directory.Src + "\\", ""); file.Folder = directory.Folder; template.Files.Add(file); } } // validate all files return(Validate(template.Files, ctx)); }
private List<Core.Framework.Provisioning.Model.File> EnumerateFiles(string folder, string ctid, Hashtable properties) { var files = new List<Core.Framework.Provisioning.Model.File>(); DirectoryInfo dirInfo = new DirectoryInfo(folder); foreach (var directory in dirInfo.GetDirectories().Where(d => (d.Attributes & FileAttributes.Hidden) == 0)) { files.AddRange(EnumerateFiles(directory.FullName, ctid, properties)); } var fileInfo = dirInfo.GetFiles(Match); foreach (var file in fileInfo.Where(f => (f.Attributes & FileAttributes.Hidden) == 0)) { var unrootedPath = file.FullName.Substring(Folder.Length + 1); var targetFolder = Path.Combine(TargetFolder, unrootedPath.LastIndexOf("\\") > -1 ? unrootedPath.Substring(0, unrootedPath.LastIndexOf("\\")) : ""); targetFolder = targetFolder.Replace('\\', '/'); var modelFile = new Core.Framework.Provisioning.Model.File() { Folder = targetFolder, Overwrite = true, Src = unrootedPath, }; if (ctid != null) { modelFile.Properties.Add("ContentTypeId", ctid); } if (properties != null && properties.Count > 0) { foreach (var key in properties.Keys) { modelFile.Properties.Add(key.ToString(), properties[key].ToString()); } } modelFile.Security = null; files.Add(modelFile); } return files; }