我想要做的是获取所有目录和每个目录中的文件并将其添加到列表中。例如,列表应如下所示:
在 index[0] {[fileinfo 列表和这里的所有文件]}
因此,在每个索引中,我将拥有该目录以及该目录的所有文件。
我试着做:
private void getfiles()
{
List<List<FileInfo>> fileList = new List<List<FileInfo>>();
for (int i = 0; i < BackgroundWorkerConfiguration.urlsDirectories.Count; i++)
{
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(BackgroundWorkerConfiguration.urlsDirectories[i]);
fileList.AddRange(di.GetFiles("*.*", System.IO.SearchOption.AllDirectories).Where(x => x.Length > 0));
}
file_array = fileList.OrderBy(x => x.CreationTime).Select(x => x.FullName).ToArray();
//file_array = fileList.OrderByDescending(x => x.CreationTime).Select(x => x.FullName).ToArray();
timer1.Enabled = true;
}
我将 更改List<FileInfo>
为List<List<FileInfo>>
,因此是列表中的列表。
所以最后,如果我在硬盘上有 5 个目录,则列表将有 5 个索引,并且在每个索引中都会有一个包含目录文件的列表。
编辑**
这是 timer1 滴答事件:
private void timer1_Tick(object sender, EventArgs e)
{
try
{
//this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
for (int i = 0; i < file_array.Length; i++)
{
}
if (leave == true)
{
pb.Load(file_array[file_indxs]);
}
else
{
pbs[0].Load(file_array[file_indxs]);
}
file_indxs = file_indxs + 1;
if (file_indxs >= file_array.Length)
{
file_indxs = 0;
}
}
catch
{
timer1.Enabled = false;
}
}
我有 8 个图片框,我在 form1 构造函数中创建它们。在这种情况下,在计时器滴答事件中,我将图像分配给 pbs[0] 它的第一个图片框。
我需要做的是使用嵌套列表并将每个目录与里面的文件分配给一个图片框。所以嵌套列表中的第一个索引应该分配给第一个图片框 pbs[0] 然后索引 1 到 pbs[1] 等等。
因此,如果嵌套列表有 5 个索引,则应将其分配给 5 个图片框。
而是将所有图像分配给 pbs[0] 这就是我做嵌套列表的原因。