C# 需要检查文件的出现情况,并在数据表中添加每个文件的一些细节,如果文件不存在,则需要提及

C# 需要检查文件的出现情况,并在数据表中添加每个文件的一些细节,如果文件不存在,则需要提及,c#,C#,我刚刚获得了特定文件的所有文件详细信息并添加到列表中 string[] Switch_filePath = Directory.GetFiles(directory, "*.switch", SearchOption.AllDirectories); List<DateTime> SwitchFileLMDate_List = new List<DateTime>(); List<string> Switch_FileName_List = new List&

我刚刚获得了特定文件的所有文件详细信息并添加到列表中

string[] Switch_filePath = Directory.GetFiles(directory, "*.switch", SearchOption.AllDirectories);
List<DateTime> SwitchFileLMDate_List = new List<DateTime>();
List<string> Switch_FileName_List = new List<string>();
DateTime Switch_L_M_D;
string Switch_File_Name;

foreach (string CurrentPath in Switch_filePath)
{
    Switch_File_Name = Path.GetFileName(CurrentPath);
    Switch_FileName_List.Add(Switch_File_Name);
    Switch_L_M_D = Directory.GetLastWriteTime(CurrentPath);
    SwitchFileLMDate_List.Add(Switch_L_M_D);
}
string[]Switch\u filePath=Directory.GetFiles(目录“*.Switch”,SearchOption.AllDirectories);
列表开关filelmdate_List=新列表();
列表开关\文件名\列表=新列表();
日期时间开关;
字符串开关\文件\名称;
foreach(开关\u文件路径中的字符串CurrentPath)
{
开关\u File\u Name=Path.GetFileName(CurrentPath);
切换文件名列表。添加(切换文件名);
Switch_L_M_D=Directory.GetLastWriteTime(CurrentPath);
SwitchFileLMDate_List.Add(Switch_L_M_D);
}
但如何检查以下情况:

请提供任何最简单的方法和想法:

在一个目录中,我们有许多子文件夹,需要检查每个文件夹中的文件类型.count、.data和.switch,并在数据表中存储文件名和路径。如果任何文件夹中缺少任何一种文件类型,则需要说明数据表中缺少该文件

捕获的结果将被发送到邮件,并根据该邮件存储结果

结果如下:


在这里,我首先捕获了子目录。如果选中条件,则在每个子目录下。如果文件类型为count,则将count文件详细信息添加到数据表中,如果文件类型为switch……这样,我们可以向数据表中添加值

       // Getting the latest .Count file:
        string directory = "C:\\MainFolder";

        DataTable dt = new DataTable();
        DataTable dt1 = new DataTable();
        DataRow row;
        DataColumn column;
        column = new DataColumn();


        dt.Columns.Add("Count_File_Date", typeof(String));
        dt.Columns.Add("Count_File_Name", typeof(String));
        dt.Columns.Add("Count_File_LMD", typeof(String));
        dt.Columns.Add("Switch_File_Name", typeof(String));
        dt.Columns.Add("Switch_File_Date", typeof(String));
        dt.Columns.Add("Data_File_Name", typeof(String));
        dt.Columns.Add("Data_File_LMD", typeof(String));
        row = dt.NewRow();
        dt.Rows.Add(row);

        var directories = Directory.GetDirectories(directory);

        foreach (string subdirectory in directories)
        {
            if (Directory.GetFiles(subdirectory, "*.count").Length == 0)
            {
                row["Count_File_Name"] = "Count File Not Found";

            }
            else
            {
                // Getting the values of count file
                DateTime Count_L_M_D;
                string Count_File_Name;
                string[] Count_filePath1 = Directory.GetFiles(subdirectory, "*.count");
                string Content = File.ReadAllText(@Count_filePath1[0]);
                string loadedDate = DateTime.ParseExact(Content.Substring(9, 8), "yyyyMMdd",
                                CultureInfo.InvariantCulture).ToString("yyyy/MM/dd");
                DateTime Datevalue = DateTime.Parse(loadedDate);
                Count_File_Name = Path.GetFileName(Count_filePath1[0]);
                Count_L_M_D = Directory.GetLastWriteTime(Count_filePath1[0]);
                row["Count_File_Date"] = Datevalue;
                row["Count_File_Name"] = Count_File_Name;
                row["Count_File_LMD"] = Count_L_M_D;
            }

            if (Directory.GetFiles(subdirectory, "*.switch").Length == 0)
            {
                row["Switch_File_Name"] = "Switch File Not Found";

            }
            else
            {
                string[] Switch_filePath = Directory.GetFiles(subdirectory, "*.switch");
                DateTime Switch_L_M_D;
                string S_File_Name;

                S_File_Name = Path.GetFileName(Switch_filePath[0]);
                Switch_L_M_D = Directory.GetLastWriteTime(Switch_filePath[0]);

                    row["Switch_File_Name"] = S_File_Name;
                    row["Switch_File_Date"] = Switch_L_M_D;
                 }
            if (Directory.GetFiles(subdirectory, "*.data").Length == 0)
            {
                row["Data_File_Name"] = "Data File Not Found";

            }
            else
            {
                string[] Data_filePath = Directory.GetFiles(directory, "*.data", SearchOption.AllDirectories);
                List<DateTime> DataFileLMDate_List = new List<DateTime>();
                List<string> Data_FileName_List = new List<string>();
                DateTime Data_L_M_D;
                string Data_File_Name;
                    Data_File_Name = Path.GetFileName(Data_filePath[0]);
                    Data_FileName_List.Add(Data_File_Name);
                    Data_L_M_D = Directory.GetLastWriteTime(Data_filePath[0]);
                    DataFileLMDate_List.Add(Data_L_M_D);


                    row["Data_File_Name"] = Data_File_Name;
                    row["Data_File_LMD"] = Data_L_M_D;

            }
        }
//获取最新的.Count文件:
string directory=“C:\\MainFolder”;
DataTable dt=新的DataTable();
DataTable dt1=新DataTable();
数据行;
数据列;
column=newdatacolumn();
添加(“计数文件日期”,类型(字符串));
添加(“计数文件名”,类型(字符串));
Add(“Count_File_LMD”,typeof(String));
添加(“开关文件名”,类型(字符串));
添加(“开关文件日期”,类型(字符串));
添加(“数据文件名”,类型(字符串));
添加(“数据文件”,类型(字符串));
row=dt.NewRow();
dt.行。添加(行);
var directories=Directory.GetDirectories(目录);
foreach(目录中的字符串子目录)
{
if(Directory.GetFiles(子目录,“*.count”).Length==0)
{
行[“计数文件名称”]=“未找到计数文件”;
}
其他的
{
//获取count文件的值
日期时间计数;
字符串计数\文件\名称;
字符串[]Count_filePath1=Directory.GetFiles(子目录“*.Count”);
string Content=File.ReadAllText(@Count_filePath1[0]);
string loadedDate=DateTime.ParseExact(Content.Substring(9,8),“yyyyymmdd”,
CultureInfo.InvariantCulture).ToString(“yyyy/MM/dd”);
DateTime Datevalue=DateTime.Parse(loadedDate);
Count_File_Name=Path.GetFileName(Count_filePath1[0]);
Count_L_M_D=Directory.GetLastWriteTime(Count_filePath1[0]);
行[“计数文件日期”]=日期值;
行[“计数文件名称”]=计数文件名称;
行[“计数文件”]=计数文件;
}
if(Directory.GetFiles(子目录,*.switch”).Length==0
{
行[“开关文件名称”]=“未找到开关文件”;
}
其他的
{
string[]Switch_filePath=Directory.GetFiles(子目录“*.Switch”);
日期时间开关;
字符串S_文件名;
S_File_Name=Path.GetFileName(开关_文件路径[0]);
Switch_L_M_D=Directory.GetLastWriteTime(Switch_filePath[0]);
行[“开关文件名称”]=开关文件名称;
行[“开关文件日期”]=开关文件日期;
}
if(Directory.GetFiles(子目录,“*.data”).Length==0)
{
行[“数据文件名称”]=“未找到数据文件”;
}
其他的
{
string[]Data\u filePath=Directory.GetFiles(目录“*.Data”,SearchOption.AllDirectories);
List DataFileLMDate_List=新列表();
列表数据\文件名\列表=新列表();
日期时间数据;
字符串数据\文件\名称;
Data_File_Name=Path.GetFileName(Data_filePath[0]);
数据文件名列表。添加(数据文件名);
Data_L_M_D=Directory.GetLastWriteTime(Data_filePath[0]);
DataFileLMDate_List.Add(Data_L_M_D);
行[“数据文件名”]=数据文件名;
行[“数据文件”]=数据文件;
}
}

结果:

捕获了数据表中的所有值。如何将此结果集传递给ssis包中的邮件任务