我遍历整个d:\dir的文件和文件夹 我用XmlDocument想弄成这样的格式<root>
<一级目录><二级目录>依次类推</二级目录><文件></文件>
</一级目录>
<文件></文件>
</root>总之就是跟windows的盘符路径一样
public string toXMl(string strDir)  //这个方法可以遍历出所有文件夹和文件 但是我不知道怎么转成我要想的XML格式
//试了半天了 还是弄不出来  请大家帮忙下 谢谢
{
 string[] strFiles = Directory.GetFiles(strDir); string[] strDirs = Directory.GetDirectories(strDir);
  foreach (string name in strFiles)
 {
  //这里是遍历所有文件
 }
 foreach (string name in strDirs)
 { 
  //这里是遍历所有目录
 } 
 if (strDirs.Length > 0)
            {
            foreach (string dir in strDirs)
                {   // 递归遍历所有文件夹   
                    return toXMl(dir);
                }
                return doc.OuterXml;  //最后是返回XmlDocument.OuterXml
            }
            else
            {
                return doc.OuterXml; //最后是返回XmlDocument.OuterXml            }
}请大家帮帮忙 多谢了

解决方案 »

  1.   

    CreateElement创建节点
    AppendChild添加子节点,就那么几个操作,自己试吧
      

  2.   


    StringBuilder sp = new StringBuilder();
    int index=0;
     public static void ListFiles(FileSystemInfo info)
        {
            index++;
            sp.Append(index+"级目录");
            if (!info.Exists) return;
            DirectoryInfo dir = info as DirectoryInfo;
            //不是目录
            if (dir == null) return;
            FileSystemInfo[] files = dir.GetFileSystemInfos();
            for (int i = 0; i < files.Length; i++)
            {
                FileInfo file = files[i] as FileInfo;
                //是文件
                if (file != null)
                {
                     sp.Append(file.FullName);
                }
                //对于子目录,进行递归调用
                else
                 ListFiles(files[i]);        }
            sp.Append("/"+index+"级目录");
        }
      

  3.   

    呵呵…………到现在我还没有搞清楚你是什么意思呢,大概是我太笨了吧,像window盘符路径那样子是什么效果呀,是在XML文件中显示的的效果吗,还是什么…………最近我也在学习关于XML的操作,作为暂数据来用挺好用的
      

  4.   

    就是d:\1.txt d:\文件夹 这样的 
      

  5.   

    我帮你写了一个,d表示目录,f表示文件,生成结果到c:\test.xml。
    class Program
    {
    private static XmlDocument xml;
    static void Main(string[] args)
    {
    DirectoryInfo rootDir = new DirectoryInfo(@"E:\我的类库");
    xml = new XmlDocument();
    XmlElement root = xml.CreateElement("root");
    xml.AppendChild(root);
    GetChild(rootDir, root);
    xml.Save(@"c:\test.xml");
    }
    private static void GetChild(DirectoryInfo parent, XmlElement currentElement)
    {
    DirectoryInfo[] childDirs = parent.GetDirectories();
    FileInfo[] childFiles = parent.GetFiles();
    foreach (DirectoryInfo d in childDirs)
    {
    XmlElement newDirElement = xml.CreateElement("d");
    newDirElement.SetAttribute("name", d.Name);
    newDirElement.InnerText = null;
    currentElement.AppendChild(newDirElement);
    GetChild(d, newDirElement);
    }
    foreach (FileInfo f in childFiles)
    {
    XmlElement newFileElement = xml.CreateElement("f");
    newFileElement.SetAttribute("name", f.Name);
    currentElement.AppendChild(newFileElement);
    }
    }
    给分哦~~