write a recursive method, see an example hereC# XML Directory Lister
http://www.codeproject.com/csharp/xmldirectorylister.asp

解决方案 »

  1.   

    使用 Directory.GetFileSystemEntries 进行递归,再按层次写入XML。
      

  2.   

    DirectoryInfo读目录信息
    XmlTextWriter对象写数据信息。
      

  3.   

    const  string mypath=@"E:\BetaSoftware\sql";
    XmlDocument doc=new XmlDocument();
    private void button1_Click_1(object sender, System.EventArgs e)
    {
    string MyPath=mypath.ToUpper();
    doc.LoadXml("<FileInfo Name='"+MyPath+"'></FileInfo>");
    GetFileInfo(MyPath,doc.DocumentElement);
    doc.Save(@"d:\fileinfo.xml");
    }
    private void GetFileInfo(string strpath,System.Xml.XmlNode node)
    {
             DirectoryInfo DirInfo=new DirectoryInfo(strpath);
    foreach(DirectoryInfo dirinfo in DirInfo.GetDirectories())
    {
    XmlElement elem = doc.CreateElement("dir");
    elem.SetAttribute("Name",dirinfo.Name);
    elem.SetAttribute("LastWriteTime",dirinfo.LastWriteTime.ToString());
    node.AppendChild(elem); 
    GetFileInfo(dirinfo.FullName,elem);
    }

    foreach(FileInfo fileinfo in DirInfo.GetFiles())
    {
    XmlElement elem = doc.CreateElement("file");
    elem.SetAttribute("Name",fileinfo.Name);
    elem.SetAttribute("LastWriteTime",fileinfo.LastWriteTime.ToString());
    elem.SetAttribute("Length",fileinfo.Length.ToString());
    node.AppendChild(elem);
    }
    }
      

  4.   

    其實saucer兄的例子已經很清楚了