我想查找具有 .xls 扩展名的所有文件,并将文件名称打印到组合框中。当我运行我的程序时,组合框是空的,但调试器显示文件 arraylist的计数为4.
这就是我所拥有的:
private void Form1_Load(object sender, EventArgs e)
{
ArrayList files = new ArrayList();
files.AddRange(System.IO.Directory.GetFiles("c:\\test", "*.xls"));
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
foreach (int i in files)
{
comboBox1.Items.Add(i);
}
comboBox1.SelectedIndex = 0;
}
答案 0 :(得分:2)
首先,您的代码无效,因为System.IO.Directory.GetFiles
没有返回您在integers
循环中枚举的foreach
。
<强>第二下, 如果您想保留您的代码,请将其修改为:
foreach (var i in files)
{
comboBox1.Items.Add(i.ToString());
}
第三次,您可以编写一个优雅且更方便的代码:
var files = System.IO.Directory.GetFiles("c:\\test", "*.xls");
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.AddRange(files);
comboBox1.SelectedIndex = 0;
答案 1 :(得分:0)
试试这个:
foreach (FileInfo file in files)
{
comboBox1.Items.Add(file.Name);
}
答案 2 :(得分:0)
ArrayList files = new ArrayList();
files.AddRange(System.IO.Directory.GetFiles("c:\\test", "*.xls"));
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
foreach (string i in files)
{
comboBox1.Items.Add(i);
}
comboBox1.SelectedIndex = 0;
答案 3 :(得分:0)
我不习惯ArrayList,但我相信它包含字符串而不是整数。
你应该将你的foreach改为:
foreach(string file in files)
comboBox1.Items.Add(i);
但是,您可以这样做:
comboBox1.Items.AddRange(Directory.GetFiles("C:\\test", "*.xls"));
祝你好运。
答案 4 :(得分:0)
Directory.GetFiles返回一个字符串数组。不是整数。所以你循环,没有找到任何物品。
foreach (string file in files)
{
comboBox1.Items.Add(file);
}