SharePointPnP.PowerShell.Commands.Provisioning.ApplyProvisioningTemplate.IsOpenOfficeFile C# (CSharp) Method

IsOpenOfficeFile() static private method

static private IsOpenOfficeFile ( Stream stream ) : bool
stream Stream
return bool
        internal static bool IsOpenOfficeFile(Stream stream)
        {
            bool istrue = false;
            // SIG 50 4B 03 04 14 00

            byte[] bytes = new byte[6];
            stream.Read(bytes, 0, 6);
            var signature = string.Empty;
            foreach (var b in bytes)
            {
                signature += b.ToString("X2");
            }
            if (signature == "504B03041400")
            {
                istrue = true;
            }
            return istrue;
        }

Usage Example

        internal static ProvisioningTemplate LoadProvisioningTemplateFromFile(string templatePath, ITemplateProviderExtension[] templateProviderExtensions)
        {
            // Prepare the File Connector
            string templateFileName = System.IO.Path.GetFileName(templatePath);

            // Prepare the template path
            var fileInfo = new FileInfo(templatePath);
            FileConnectorBase fileConnector = new FileSystemConnector(fileInfo.DirectoryName, "");

            // Load the provisioning template file
            Stream stream           = fileConnector.GetFileStream(templateFileName);
            var    isOpenOfficeFile = ApplyProvisioningTemplate.IsOpenOfficeFile(stream);

            XMLTemplateProvider provider;

            if (isOpenOfficeFile)
            {
                provider         = new XMLOpenXMLTemplateProvider(new OpenXMLConnector(templateFileName, fileConnector));
                templateFileName = templateFileName.Substring(0, templateFileName.LastIndexOf(".", StringComparison.Ordinal)) + ".xml";
            }
            else
            {
                provider = new XMLFileSystemTemplateProvider(fileConnector.Parameters[FileConnectorBase.CONNECTIONSTRING] + "", "");
            }

            ProvisioningTemplate provisioningTemplate = provider.GetTemplate(templateFileName, templateProviderExtensions);

            provisioningTemplate.Connector = provider.Connector;

            // Return the result
            return(provisioningTemplate);
        }
All Usage Examples Of SharePointPnP.PowerShell.Commands.Provisioning.ApplyProvisioningTemplate::IsOpenOfficeFile
ApplyProvisioningTemplate