C# - 从FolderBrowserDialog中选择文件后,在DataGridView中显示文件

时间:2013-07-11 09:27:24

标签: c# xml linq datagridview

我正在尝试使用Visual Studio编写一个Windows窗体应用程序,该应用程序使用XML文件来读取LINQ。到目前为止,我设法使用FolderBrowserDialog浏览文件夹并在文本框中显示路径。

现在我想在我的程序中使用LINQ读取XML文件的路径,在FolderBrowserDialog中选择一个文件夹后,在DataGridView中显示该文件夹的子文件和子文件夹(仅限名称,大小和路径)。

我的XML代码是:

<?xml version="1.0" encoding="utf-8"?>
<Info>
 <Hour>10</Hour>
 <Folder>C:\Test</Folder>
</Info>

我设法读取小时值,但我无法访问并使用文件夹,因为我不知道如何使用LINQ在XML文件中访问路径。我试图做这样的事情,但我无法管理如何继续:

var _query2 = from p in document.Descendants("Folder")
              select p;

在此之后,我想在DataGridView中显示子文件的名称,大小和类型,我写了这个类,但无法管理从哪里开始。

public class Info
    {
        public string name;
        public char type;
        public float size;

        public List<string> IGrid //hold information of folder's size, name, type
        {
            get {return IGrid;}
        }
        public Info (string _name, char _type, float _size)
        {
            name = _name;
            type = _type;
            size = _size;
        }

    }

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

1)使用XmlDocument xmlDoc = new XmlDocument();用于读取xml文件。

2)将文件名传递给XmlTextReader xmlReader = new XmlTextReader(streFileName);

3)使用XmlValidatingReader xmlValidatingReader = new XmlValidatingReader(xmlReader);用于验证xml和阅读。

4)选择像

这样的linq或lamda表达式

xmlDoc.SelectNodes(“指定父节点”)。Cast&lt;'XmlNode&gt;()。其中​​(x =&gt; x.Name ==“检查条件”)。选择(x =&gt; x.InnerText );

我认为这有助于阅读该文件。