我想知道是否有人知道更清洁的方法来做到这一点。我的程序有一部分将列出所有包含文件的输入目录。
但是,为此,我手动将每个输入目录存储为一个变量,并将它们用作搜索的目标。
我想知道是否有更清洁的方法来做到这一点?
例如,我现在脑子里的伪代码是:
- 从目录开始
Date
,If FolderName == "Input"
然后将所有子文件夹存储在数组中InputSubs
- 对于 中的每个文件夹
InputSubs
,如果其中不包含子文件夹且不包含InputSub
文件,InputSubs
则继续下一个 - 如果
InputSubs
包含一个子目录,则将所有子目录存储在数组中InputSubs2
并继续下一个 - 如果
InputSubs
包含文件,则在数组中存储DirPath
并FileName
作为字符串InputFiles
- 重复
InputSubs
过程InputSubs2
输入文件夹最深的是 2 个目录。
输入文件夹结构的示例在附加图像中。
我目前使用的代码示例如下。
ListBox1.Items.Clear();
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "AustraliaFolder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "AustraliaFolder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "DE1Folder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "DE1Folder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "PL1Folder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "PL1Folder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "EuropeFolder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "EuropeFolder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "fr1Folder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "fr1Folder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "FranceFolder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "FranceFolder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "HKFolder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "HKFolder"))[0]);
}
if (Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "UKFolder")).Length != 0)
{
ListBox1.Items.Add(Directory.GetFiles(SalesInputFilePath + ResourceDetails.InputFolders(FormDMM, EH, ObjApp, Modules, "UKFolder"))[0]);
}
我不可避免地倾向于将事情过度复杂化,并且想知道是否有比我头脑中的伪代码更简单或至少更有效的方法来做到这一点。
谢谢你。