public override bool TryGetItem(ItemIdentifier ii, out FileFolder ff)
 {
     if (ii == null)
     {
         ff = m_rootFolder;
         return(true);
     }
     return(m_rootFolder.TryGetFolder(ii.FolderName, out ff));
 }
        public SingleItemPackage(string physicalPath)
        {
            m_name = Path.GetFileName(physicalPath);

            if (!ItemIdentifier.TryParse(m_name, out m_ii))
            {
                throw new ArgumentException($"SingleItemPackage does not specify a valid Item ID. folderName='{m_name}'");
            }

            m_physicalPath = physicalPath;

            // This two-step method fills in the internal variables
            var ff = new FsFolder(physicalPath);

            ff.TryGetFolder(physicalPath, out m_folder);
        }