【问题标题】:C# - Displaying files in DataGridView after selecting it from FolderBrowserDialogC# - 从 FolderBrowserDialog 中选择文件后在 DataGridView 中显示文件
【发布时间】:2013-07-11 09:27:23
【问题描述】:

我正在尝试使用 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>

我设法读取了 Hour 值,但我无法访问和使用 Folder,因为我不知道如何使用 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;
        }

    }

你能帮帮我吗?

【问题讨论】:

    标签: c# xml linq datagridview


    【解决方案1】:

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

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

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

    使用linqlambda 之类的表达式

    xmlDoc.SelectNodes("specify the parent node").Cast<'XmlNode>().Where(x => x.Name == "check for condition").Select(x => x.InnerText);
    

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

    【讨论】:

    • 感谢您的快速回复。 XmlValidatingReader 如何帮助我在这个问题中阅读该目录?而且我无法成功您编写的第四个解决方案,SelectNodes("") 没有出现。
    • 使用 XDocument.Load(@"path") 解决了问题并将路径声明为字符串。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 2019-10-08
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 2013-01-25
    • 2016-10-09
    • 1970-01-01
    相关资源
    最近更新 更多