Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过文件csv名称筛选日期时间范围_C# - Fatal编程技术网

C# 通过文件csv名称筛选日期时间范围

C# 通过文件csv名称筛选日期时间范围,c#,C#,我有一个csv文件列表,其中命名约定为yyyymmddhhmm.csv 如果今天的日期是2016年6月14日,我需要从昨天晚上7点到今天早上7点进行文件过滤 我需要实现这些csv,文件名范围为2016年6月13日下午7点到2016年6月14日上午7点 201606132000.csv 201606140100.csv 201606140300.csv 201606140500.csv 201606140700.csv 我已经编写了selecttoday文件。 如何按日期(包括昨天晚上7点到11

我有一个csv文件列表,其中命名约定为yyyymmddhhmm.csv

如果今天的日期是2016年6月14日,我需要从昨天晚上7点到今天早上7点进行文件过滤

我需要实现这些csv,文件名范围为2016年6月13日下午7点到2016年6月14日上午7点

201606132000.csv
201606140100.csv
201606140300.csv
201606140500.csv
201606140700.csv
我已经编写了selecttoday文件。 如何按日期(包括昨天晚上7点到11:59点)进行筛选

string[] FileList = Directory.GetFiles(csvpath, DateTime.Today.ToString("yyyyMMdd") + "*.csv");
foreach (var fileName in FileList)
  { 
  \\file process code.
}

如果文件名和创建的日期时间相同,则可以使用以下代码获取列表:

例如,名为
201606132000.csv
的文件的创建时间将为
2016/06/13/20:00
201606140500.csv
将为
2016/06/14/05:00

DateTime yesterdayTime = DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime = DateTime.Now.Date.AddHours(7);
List<FileInfo> FilesBetween7To7 = Directory.GetFiles("your path here")
                                           .Select(x => new FileInfo(x))
                                           .Where(y => y.CreationTime > yesterdayTime && 
                                           y.CreationTime < TodayTime)
                                           .ToList();
DateTime yesterdayday=DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime=DateTime.Now.Date.AddHours(7);
列出FilesBetween7To7=Directory.GetFiles(“此处的路径”)
.选择(x=>newfileinfo(x))
.其中(y=>y.CreationTime>YesterDaily&&
y、 CreationTime<今天时间)
.ToList();
或者,您可以使用以下代码段与名称进行比较并选择文件

DateTime yesterdayTime = DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime = DateTime.Now.Date.AddHours(7);
List<string> fileList = Directory.GetFiles(csvpath, "*.csv").ToList();
List<string> FilesInTheRange = new List<string>();
DateTime fileTime;
foreach (string file in fileList)
{
    if (DateTime.TryParseExact(file.Replace(".csv",String.Empty), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out fileTime))
    {
        if (fileTime >= yesterdayTime && fileTime <= TodayTime)
            FilesInTheRange.Add(file);
    }
}
DateTime yesterdayday=DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime=DateTime.Now.Date.AddHours(7);
List fileList=Directory.GetFiles(csvpath,“*.csv”).ToList();
List filesinterrange=new List();
日期时间文件时间;
foreach(文件列表中的字符串文件)
{
if(DateTime.TryParseExact(file.Replace(“.csv”,String.Empty),“yyyyymmdd”,CultureInfo.InvariantCulture,datetimestyle.None,out fileTime))
{

如果(fileTime>=YesterDaily&&fileTime如果文件名和创建的日期时间相同,则可以使用以下代码获取列表:

例如,名为
201606132000.csv
的文件的创建时间将为
2016/06/13/20:00
201606140500.csv
将为
2016/06/14/05:00

DateTime yesterdayTime = DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime = DateTime.Now.Date.AddHours(7);
List<FileInfo> FilesBetween7To7 = Directory.GetFiles("your path here")
                                           .Select(x => new FileInfo(x))
                                           .Where(y => y.CreationTime > yesterdayTime && 
                                           y.CreationTime < TodayTime)
                                           .ToList();
DateTime yesterdayday=DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime=DateTime.Now.Date.AddHours(7);
列出FilesBetween7To7=Directory.GetFiles(“此处的路径”)
.选择(x=>newfileinfo(x))
.其中(y=>y.CreationTime>YesterDaily&&
y、 CreationTime<今天时间)
.ToList();
或者,您可以使用以下代码段与名称进行比较并选择文件

DateTime yesterdayTime = DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime = DateTime.Now.Date.AddHours(7);
List<string> fileList = Directory.GetFiles(csvpath, "*.csv").ToList();
List<string> FilesInTheRange = new List<string>();
DateTime fileTime;
foreach (string file in fileList)
{
    if (DateTime.TryParseExact(file.Replace(".csv",String.Empty), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out fileTime))
    {
        if (fileTime >= yesterdayTime && fileTime <= TodayTime)
            FilesInTheRange.Add(file);
    }
}
DateTime yesterdayday=DateTime.Now.AddDays(-1).Date.AddHours(19);
DateTime TodayTime=DateTime.Now.Date.AddHours(7);
List fileList=Directory.GetFiles(csvpath,“*.csv”).ToList();
List filesinterrange=new List();
日期时间文件时间;
foreach(文件列表中的字符串文件)
{
if(DateTime.TryParseExact(file.Replace(“.csv”,String.Empty),“yyyyymmdd”,CultureInfo.InvariantCulture,datetimestyle.None,out fileTime))
{

如果(fileTime>=YesterDaily&&fileTime这是一段未经测试的代码,但您可能希望使用TryParseExact并将文件名转换为datetime对象,并基于开始和结束日期时间进行比较

string dateTimeFormat = "yyyyMMddHHmm";
string[] FileList = Directory.GetFiles(csvpath, DateTime.Today.ToString("yyyyMMdd") + "*.csv");
int startHour = 19; // 7 PM
int endHour = 7; // 7 AM
DateTime startDT = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 

DateTime.Now.Day - 1, startHour, 0, 0);
DateTime endDT = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, endHour, 0, 0);
foreach (var fileName in FileList)
{ 
    DateTime fileDT = DateTime.Min;
    if(DateTime.TryParseExact(fileName, dateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyle.None, out fileDT))
    {
        if(fileDT >= startDT && fileDT <= endDT)
        {
            \\file process code.
        }       
    }
}
string dateTimeFormat=“yyyyMMddHHmm”;
string[]FileList=Directory.GetFiles(csvpath,DateTime.Today.ToString(“yyyyMMdd”)+“*.csv”);
int startHour=19;//晚上7点
int endHour=7;//上午7点
DateTime startDT=新的日期时间(DateTime.Now.Year、DateTime.Now.Month、,
DateTime.Now.Day-1,startHour,0,0);
DateTime endDT=新的DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,endHour,0,0);
foreach(文件列表中的var文件名)
{ 
DateTime fileDT=DateTime.Min;
if(DateTime.TryParseExact(文件名,dateTimeFormat,CultureInfo.InvariantCulture,DateTimeStyle.None,out fileDT))
{

如果(fileDT>=startDT&&fileDT这是一段未经测试的代码,但您可能希望使用TryParseExact并将文件名转换为datetime对象,并根据开始和结束日期时间进行比较

string dateTimeFormat = "yyyyMMddHHmm";
string[] FileList = Directory.GetFiles(csvpath, DateTime.Today.ToString("yyyyMMdd") + "*.csv");
int startHour = 19; // 7 PM
int endHour = 7; // 7 AM
DateTime startDT = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 

DateTime.Now.Day - 1, startHour, 0, 0);
DateTime endDT = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, endHour, 0, 0);
foreach (var fileName in FileList)
{ 
    DateTime fileDT = DateTime.Min;
    if(DateTime.TryParseExact(fileName, dateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyle.None, out fileDT))
    {
        if(fileDT >= startDT && fileDT <= endDT)
        {
            \\file process code.
        }       
    }
}
string dateTimeFormat=“yyyyMMddHHmm”;
string[]FileList=Directory.GetFiles(csvpath,DateTime.Today.ToString(“yyyyMMdd”)+“*.csv”);
int startHour=19;//晚上7点
int endHour=7;//上午7点
DateTime startDT=新的日期时间(DateTime.Now.Year、DateTime.Now.Month、,
DateTime.Now.Day-1,startHour,0,0);
DateTime endDT=新的DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,endHour,0,0);
foreach(文件列表中的var文件名)
{ 
DateTime fileDT=DateTime.Min;
if(DateTime.TryParseExact(文件名,dateTimeFormat,CultureInfo.InvariantCulture,DateTimeStyle.None,out fileDT))
{

如果(fileDT>=startDT&&fileDT是特定文件的名称和创建时间是否相同?名称不会相同,但创建时间可以相同。我不能根据创建日期使用筛选。例如
201606131800.csv-2016/6/14 1am
201606132000.csv-2016/6/14 1am
201606140100.csv-2016/6/14 1am
是名称和cre特定文件的更新时间相同?名称不相同,但创建时间可以相同。我不能使用基于创建日期的筛选。例如
201606131800.csv-2016/6/14 1am
201606132000.csv-2016/6/14 1am
201606140100.csv-2016/6/14 1am
请注意,有些情况下,文件的创建日期时间更改,例如从web下载文件的时间。但是,如果它是本地创建的文件,则不会有任何问题。@如果要使用此CultureInfo.InvariantCulture,DateTimeStyles,我需要包括哪个库,则不算幸运。None@Jonathan:
使用System.Globalization;
请注意,有些情况下,文件的创建日期和时间NGE,例如从web下载文件时。但如果它是本地创建的文件,则不会有任何问题。@un lucky我需要包含哪个库才能使用此CultureInfo.i