C#Directory.GetFiles()是否仅显示列表中的一个文件?
我正在努力学习C#,我从一些简单的东西开始 我正在尝试创建一个简单的程序,该程序将读取目录中扩展名为.XLS的所有文件。我似乎让它部分工作,但它只读取它看到的文件 我以为C#Directory.GetFiles()是否仅显示列表中的一个文件?,c#,C#,我正在努力学习C#,我从一些简单的东西开始 我正在尝试创建一个简单的程序,该程序将读取目录中扩展名为.XLS的所有文件。我似乎让它部分工作,但它只读取它看到的文件 我以为foreach语句会考虑到这一点,并将它们全部列出,但它似乎不起作用 如果有人能给我指出正确的方向,我会非常感激 public partial class Form1 : Form { public Form1() { InitializeComponent(); } priva
foreach
语句会考虑到这一点,并将它们全部列出,但它似乎不起作用
如果有人能给我指出正确的方向,我会非常感激
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
GetFiles();
}
private void GetFiles()
{
List<String> Myfiles = new List<string>();
string[] allFiles = System.IO.Directory
.GetFiles(@"C:\Users\Dave\Desktop\STUFF", "*.*");
if (allFiles.Length > 0)
{
try
{
foreach (string filename in allFiles)
{
this.richTextBox1.Text = filename.ToString();
}
}
catch (SystemException excpt)
{
this.richTextBox1.Text = excpt.Message;
}
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
GetFiles();
}
私有void GetFiles()
{
List Myfiles=new List();
字符串[]allFiles=System.IO.Directory
.GetFiles(@“C:\Users\Dave\Desktop\STUFF”、“**”);
如果(allFiles.Length>0)
{
尝试
{
foreach(所有文件中的字符串文件名)
{
this.richTextBox1.Text=filename.ToString();
}
}
捕获(系统异常例外)
{
this.richTextBox1.Text=expt.Message;
}
}
}
由于需要xls文件,请更新此行:
string[] allFiles = System.IO.Directory.GetFiles(@"C:\Users\Dave\Desktop\STUFF", "*.xls");
您可能会在编辑框中看到一个文件。因此,请更新该行:
this.richTextBox1.AppendText(filename + Environment.NewLine);
我想可能是这一行造成的:
this.richTextBox1.Text=filename.ToString();
实际上,您每次都会覆盖文本框的文本,导致只将最后一个文件名写入
richtextbox
。您应该将文件名字符串附加到richtextbox
而不是赋值。快速查看,我认为您的问题在于:
this.richTextBox1.Text = filename.ToString();
您是在最后一次循环迭代中指定text属性,而不是为每个文件追加新行
尝试调试for循环,是否有多次迭代?为
xls
筛选文件:
string[] allFiles = System.IO.Directory.GetFiles(@"C:\Users\Dave\Desktop\STUFF", "*.xls");
并将try块代码更新为:
try
{
this.richTextBox1.Text= string.Join(Environment.NewLine, allFiles);
//foreach (string filename in allFiles)
//{
// this.richTextBox1.Text = filename.ToString();
//}
}
每次执行此操作时都会覆盖文件名
this.richTextBox1.Text=filename.ToString()
,您可能想附加它或其他东西…谢谢,这很好地工作了,我会在可以的时候接受的,只是一个简单的问题,我假设您提供的方法是正确读取数组的方法?如果有帮助,那么您应该接受它。您可以使用“文件夹”对话框浏览文件夹并从那里读取路径。