private static IFileExport GetExport(string flag)
        {
            Enumerations.ExportFileStructure export = Enumerations.ExportFileStructure.None;

            if (flag.Equals(m_Export_TextFile, StringComparison.OrdinalIgnoreCase))
            {
                export = Enumerations.ExportFileStructure.TextFile;
            }
            else if (flag.Equals(m_Export_TextFlat, StringComparison.OrdinalIgnoreCase))
            {
                export = Enumerations.ExportFileStructure.TextFlat;
            }
            else if (flag.Equals(m_Export_CsvFile, StringComparison.OrdinalIgnoreCase))
            {
                export = Enumerations.ExportFileStructure.CSV;
            }
            else
            {
                throw new ArgumentException($"The export flag is unhandled: \"{flag}\".");
            }

            Log($"Export is {export}");

            return(FileExporterFactory.Get(export));
        }
        internal async Task ExportAsync(string fullyQualifiedPath)
        {
            Log($"{nameof(DirectoryViewModel)}.{nameof(ExportAsync)} => Filepath: \"{fullyQualifiedPath}\"");

            if (RootNode is null)
            {
                throw new ArgumentException("Root node is null.", nameof(fullyQualifiedPath));
            }

            StringBuilder sb = new StringBuilder();

            if (HashAlgorithim is null)
            {
                sb.AppendLine("No hashing selected.");
            }
            else
            {
                sb.AppendLine($"Hashing algorithm: {HashAlgorithim.AlgorithimName}");
            }

            IFileExport exporter = FileExporterFactory.Get(SelectedExportStructure);

            await Task.Run(() => exporter.Export(RootNode, fullyQualifiedPath, sb));

            Log($"File written to: \"{fullyQualifiedPath}\".");
        }