c#:用xml递归存电脑指定路径的目录

 public static void StoreAllFilesToXml(string directoryPath, string destinationXmlFilePath, XmlNode parentNode, XmlDocument xmlDoc)
        {
            bool isFirst = false;

            if (parentNode == null)
            {
                isFirst = true;
                xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
                DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
                string rootFolder = "directory_root";
                parentNode = xmlDoc.CreateElement(rootFolder);
                XmlAttribute rootName = xmlDoc.CreateAttribute("name");
                rootName.Value = directoryInfo.Name;
                parentNode.Attributes.Append(rootName);
            }

            var rootDirectory = new DirectoryInfo(directoryPath);
            foreach (var directory in rootDirectory.GetDirectories())
            {
                Console.WriteLine("Directory Name: {0}", directory.Name);
                XmlNode folder = xmlDoc.CreateElement("folder");
                XmlAttribute name = xmlDoc.CreateAttribute("name");
                name.Value = directory.Name;
                folder.Attributes.Append(name);
                parentNode.AppendChild(folder);
                StoreAllFilesToXml(directory.FullName, @"C:\Users\nhuang\Desktop\a.xml", folder, xmlDoc);
            }
            foreach (var file in rootDirectory.GetFiles())
            {
                Console.WriteLine("parentNode"+parentNode.Name);
                Console.WriteLine("File Name: {0}", file.Name);
                XmlNode fileName = xmlDoc.CreateElement("fileName");
                fileName.InnerText = file.Name;
                parentNode.AppendChild(fileName);
            }

            if(isFirst)
            {
                xmlDoc.AppendChild(parentNode);
                using (XmlTextWriter xmlTextWriter = new XmlTextWriter(destinationXmlFilePath, Encoding.UTF8)
                {
                    Formatting = Formatting.Indented,
                    IndentChar = '\t',
                    Indentation = 1
                })
                {
                    xmlDoc.Save(xmlTextWriter);
                }
            }

        }

使用时

XmlNode temp = null;
                XmlDocument xmlDoc = new XmlDocument();
                StoreAllFilesToXml(@"C:\Users\nhuang\Documents\学习资料", @"C:\Users\nhuang\Desktop\a.xml", temp, xmlDoc);
                ReadXmlFromFile(@"C:\Users\nhuang\Desktop\a.xml");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我扶奶奶过哈登

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值