C# 创建xdocument结构
我正在尝试将驱动器索引为xml文件。我可怜的尝试是:C# 创建xdocument结构,c#,.net,xml,linq-to-xml,C#,.net,Xml,Linq To Xml,我正在尝试将驱动器索引为xml文件。我可怜的尝试是: internal static void createIndex(String path, String driveLabel) { XDocument w = new XDocument(); w.Add(createStructure(path, new XElement("root"))); w.Save(driveLabel +
internal static void createIndex(String path, String driveLabel)
{
XDocument w = new XDocument();
w.Add(createStructure(path, new XElement("root")));
w.Save(driveLabel +".xml");
}
internal static XElement createStructure(String path, XElement x)
{
try
{
String[] files = Directory.GetFiles(path);
String[] folders = Directory.GetDirectories(path);
foreach (String s in folders)
{
x.Add("directory", createStructure(s, x));
}
foreach (String f in files)
{
x.Add(new XElement("file", f));
}
}
catch (Exception e) { }
return x;
}
这里的一些输出-简单的文件结构-root有2个MP3和1个包含2个文件的文件夹
<?xml version="1.0" encoding="utf-8"?>
<root>
<file>E:\.wd_tv\ph.db</file>
<file>E:\.wd_tv\ph.db-journal</file>directory<root>
<file>E:\.wd_tv\ph.db</file>
<file>E:\.wd_tv\ph.db-journal</file>directory</root>
<file>E:\180.mp3</file>
<file>E:\181.mp3</file>
</root>
E:\.wd\U tv\ph.db
E:\.wd\U tv\ph.db-journaldirectory
E:\.wd\U tv\ph.db
E:\.wd\U tv\ph.db-journaldirectory
E:\180.mp3
E:\181.mp3
我得到一些奇怪的混合标签那里,我只是不明白。谢谢你的帮助
使用od的循环结构,它将更改为:
目录目录
E:\180.mp3
E:\181.mp3
尝试以下循环结构:
foreach (String s in folders)
{
x.Add("directory", createStructure(s, x));
foreach (String f in files)
{
x.Add(new XElement("file", f));
}
}
这样,您将在目录中的目录之后立即显示属于该目录的文件。您得到的是hoodywha吗?抛出一些错误的输出,因为代码似乎是正确的。
foreach (String s in folders)
{
x.Add("directory", createStructure(s, x));
foreach (String f in files)
{
x.Add(new XElement("file", f));
}
}