c# - 在列表框中选择一个目录并在另一个列表框中显示所选目录的文件

标签 c# silverlight visual-web-developer-2010

我使用以下命令将目录枚举到 ListBox 中:

private void TE_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {            
IEnumerable<string> file = System.IO.Directory.EnumerateDirectories(@"C:\Users\user\Desktop", "*.*", System.IO.SearchOption.AllDirectories);
        foreach (var f in file)
        {
            lbz.Items.Add(String.Format(f));
        }
    } 

现在,ListBox 显示给定路径中的所有目录,然后我使用:

private void lbz_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (lbz.SelectedItem != null)
        {
            if (Directory.Exists(lbz.SelectedItem.ToString()))
            {
                string[] filePaths = Directory.EnumerateFiles() //:<------
                for (int i = 0; i < filePaths.Length; ++i) 
                {
                    lbz2.Items.Add(i); 
                }

            }
            else
            {
                tb1.Text = "Directory Doesn't Exist On This Path";
            }
        }
        else
        {
            tb1.Text = "No Directory Selected";
        }

    }

箭头是我困惑的地方,因为我使用的是 Microsoft Visual Web Developer,所以我无法使用 GetFiles,我必须使用 Enumerate。

我希望能够通过在 lbz 中选择一个目录并将该目录内容以及其中的所有文件显示在 lbz2 中来填充另一个 ListBox (lbz2)。

如果:

string[] filePaths = Directory.EnumerateFiles() //:<------
for (int i = 0; i < filePaths.Length; ++i) 
{
    lbz2.Items.Add(i); 
}

不起作用,我愿意接受建议。

最佳答案

这应该有效:

foreach (var filePath in Directory.EnumerateFiles(lbz.SelectedItem.ToString()))
{
    lbz2.Items.Add(filePath); 
}

EnumerateFiles 返回 IEnumerable<string> ,不是string[]

关于c# - 在列表框中选择一个目录并在另一个列表框中显示所选目录的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11455647/

相关文章:

C#:OleDbCommand 更新查询不起作用?

c# - C# 和 VB.Net 之间对象装箱/比较引用的差异

c# - 如何强制在 DateTimeAxis 上显示特定日期

wpf - 强制 ComboBox 在 Silverlight 中打开?

asp.net-mvc - MVC3 应用程序 - 获取 "Could not load file or assembly ' System.Data.SQLite' 或其依赖项之一。”

xml - 无论如何,我可以使用 SandcaSTLe 从安装了 Microsoft Visual Web Developer 2010 Express 的 .xml 文件创建 .chm 文件吗?

c# - 将运行一个程序所需的几个文件组合成一个可执行文件

C#:如何将类属性公开给一个类而不公开给另一个类?

c# - BinaryReader 的奇怪行为

vb.net - 显示过去条目的文本框