gpt4 book ai didi

c# - 如何从其他目录中的所有目录中获取所有文件并检查每个文件的大小?

转载 作者:行者123 更新时间:2023-11-30 22:12:10 25 4
gpt4 key购买 nike

          for (int i = 0; i < BackgroundWorkerConfiguration.urlsDirectories.Count; i++)
{
file_array =Directory.GetFiles(BackgroundWorkerConfiguration.urlsDirectories[i]);
}

DateTime[] creationTimes8 = new DateTime[file_array.Length];


for (int i = 0; i < file_array.Length; i++)
creationTimes8[i] = new FileInfo(file_array[i]).CreationTime;
Array.Sort(creationTimes8, file_array);
file_indxs = 0;
file_indxs = file_array.Length - 1;
timer1.Enabled = true;

urlsDirectories 包含 5 个目录,其中每个索引都有一个目录。在每个目录中都有一些文件。我有一个字符串数组 file_array。我得到的数组,循环末尾的 file_array 只包含最后一个目录文件而不是所有文件。我需要该特定目录中的所有文件。

完成后,我需要检查文件大小是否大于 0,如果满足条件则继续。

编辑** 这是 timer1 滴答事件:

private void timer1_Tick(object sender, EventArgs e)
{
try
{
//this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
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 < 0)
{
file_indxs = file_array.Length - 1;
}
}
catch
{
timer1.Enabled = false;
}
}

最佳答案

您可以使用以下代码将所有目录的大小大于 0 的文件放入 List 中:

List<System.IO.FileInfo> fileList = new List<System.IO.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));
}

现在 fileList 将包含 FileInfo 的列表,您可以在代码中进一步使用它。

请注意,我还使用了 System.IO.SearchOption.AllDirectories 来搜索所有子目录 - 我不确定您是否需要它。


您可以使用以下代码按创建日期对文件列表进行排序,并将其转换为文件名数组:

String[] file_array = fileList.OrderBy(x => x.CreationTime).Select(x => x.FullName).ToArray();

如果想降序排列,可以使用

String[] file_array = fileList.OrderByDescending(x => x.CreationTime).Select(x => x.FullName).ToArray();

关于c# - 如何从其他目录中的所有目录中获取所有文件并检查每个文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com