private static void RecursiveDirectoryTraversal(Folder folder)
        {
            var directoryInfo = new DirectoryInfo(folder.Name);

            foreach (var file in directoryInfo.GetFiles())
            {
                writer.WriteStartElement("file");
                writer.WriteAttributeString("name", file.Name);

                folder.Files.Add(new File(file.FullName));

                writer.WriteEndElement();
            }

            foreach (var directory in directoryInfo.GetDirectories())
            {
                writer.WriteStartElement("dir");
                writer.WriteAttributeString("name", directory.Name);

                var childFolder = new Folder(directory.FullName);
                folder.ChildFolders.Add(childFolder);
                RecursiveDirectoryTraversal(childFolder);
                
                writer.WriteEndElement();
            }
        }
        public static void Main()
        {
            using (writer)
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("root-dir");
                writer.WriteAttributeString("path", folderPath);

                var folder = new Folder(folderPath);
                RecursiveDirectoryTraversal(folder);

                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
        }