且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从枚举文件夹向列表框中添加不同的文件

更新时间:2023-09-25 20:31:58

您好,我尝试使用以下代码创建一个小的POC(概念证明):

考虑以下文件夹结构:

FolderA
| _ A1.txt
| _ A2.txt
| _ FolderB
| _ B1.txt
| _ B2.txt
| _ B3.txt

Hi, I tried to create a small POC (Proof of concept) using the following code:

Considering the following folder structure:

FolderA
|_ A1.txt
|_ A2.txt
|_ FolderB
|_ B1.txt
|_ B2.txt
|_ B3.txt

string[] files = Directory.GetFiles(@"D:\FolderA");
ListBox1.DataSource = files;
ListBox1.DataBind();

string[] folders = Directory.GetDirectories(@"D:\FolderA");
files = Directory.GetFiles(folders[0]);
ListBox2.DataSource = files;
ListBox2.DataBind();



输出如下:

ListBox1:
A1.txt
A2.txt

ListBox2:
B1.txt
B2.txt
B3.txt



Output would be as follows:

ListBox1:
A1.txt
A2.txt

ListBox2:
B1.txt
B2.txt
B3.txt


在这里,我得到了代码,它可以完美运行..很大程度上要感谢Debabrata_DAs的想法..



here i go i got the code and it works perfectly.. mostly thanks to Debabrata_DAs as he gave me idea..



var fbd = new FolderBrowserDialog();
fbd.ShowNewFolderButton = false;

if (fbd.ShowDialog() == DialogResult.Cancel)
return;

string foldername = fbd.SelectedPath;


var dirs = from dir in
Directory.EnumerateDirectories(@" "+foldername )
select dir;
int directoryCount;

foreach (var dir in dirs)
{
foreach (string f in Directory.EnumerateFiles(dir, "*.*"))
{
listBox1.Items.Add(f);


}
directoryCount = System.IO.Directory.GetFiles(@"" + dir).Length;
var lb = new ListBox();
lb.Dock = DockStyle.Bottom;
foreach (string f in Directory.EnumerateFiles (dir,"*.*"))
lb.Items.Add(f);
panel2.Controls.Add(lb);
string m = directoryCount.ToString();
MessageBox.Show(m);
}