Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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# 如何在c中列出具有特定日期模式的所有子目录#_C#_Linq - Fatal编程技术网

C# 如何在c中列出具有特定日期模式的所有子目录#

C# 如何在c中列出具有特定日期模式的所有子目录#,c#,linq,C#,Linq,我有一个目录,它有子目录,如FEB2014、MAR2013,等等。它也可以有子目录,如Log或其他 我的问题是如何找到具有特定日期模式的所有子目录(我的案例是MMMyyyy),比如2014年2月、2013年3月。我更喜欢使用LINQ像这样使用: 这将仅返回名称格式为MMMyyyy的目录。考虑一下你的目录< /Cord>数组组成如下: //string[] directories = Directory.GetDirectories("yourPath"); string[] directorie

我有一个目录,它有子目录,如
FEB2014、MAR2013
,等等。它也可以有子目录,如Log或其他

我的问题是如何找到具有特定日期模式的所有子目录(我的案例是
MMMyyyy
),比如
2014年2月、2013年3月
。我更喜欢使用
LINQ

像这样使用:

这将仅返回名称格式为
MMMyyyy
的目录。考虑一下你的<代码>目录< /Cord>数组组成如下:

//string[] directories = Directory.GetDirectories("yourPath");
string[] directories = new[] 
    {
        "FEB2014", 
        "MAR2013", 
        "LOG", 
        "SOMETHING", 
        "APR2014",
        "MAY2014"
    };
上述查询将返回四条记录

FEB2014
MAR2013
APR2014
MAY2014
请发表评论:

DirectoryInfo.GetDriectories
返回
DirectoryInfo
对象的数组,而不是直接返回字符串名称。您还需要为out参数传递一个
DateTime
对象,您可以执行以下操作:

DateTime temp;
var dirInfo = new DirectoryInfo(MyApp.App_Code.Global.FileLocation)
                    .GetDirectories()
                    .Where(d => DateTime.TryParseExact(d.Name, 
                    "MMMyyyy", CultureInfo.InvariantCulture, 
                    DateTimeStyles.None, 
                    out temp))
                    .OrderBy(d => d.LastAccessTime).Last();
使用类似于:

这将仅返回名称格式为
MMMyyyy
的目录。考虑一下你的<代码>目录< /Cord>数组组成如下:

//string[] directories = Directory.GetDirectories("yourPath");
string[] directories = new[] 
    {
        "FEB2014", 
        "MAR2013", 
        "LOG", 
        "SOMETHING", 
        "APR2014",
        "MAY2014"
    };
上述查询将返回四条记录

FEB2014
MAR2013
APR2014
MAY2014
请发表评论:

DirectoryInfo.GetDriectories
返回
DirectoryInfo
对象的数组,而不是直接返回字符串名称。您还需要为out参数传递一个
DateTime
对象,您可以执行以下操作:

DateTime temp;
var dirInfo = new DirectoryInfo(MyApp.App_Code.Global.FileLocation)
                    .GetDirectories()
                    .Where(d => DateTime.TryParseExact(d.Name, 
                    "MMMyyyy", CultureInfo.InvariantCulture, 
                    DateTimeStyles.None, 
                    out temp))
                    .OrderBy(d => d.LastAccessTime).Last();

你只看了一个层次吗?你的例子与你给出的日期模式不匹配;你的意思是
MMMyyyy
?对不起,我的错应该是MMMyyyy。你只看了一层吗?你的示例与你给出的日期模式不匹配;你是说
MMMyyyy
?对不起,我的错应该是MMMyyyy。我尝试了dirInfo=newdirectoryinfo(MyApp.App\u code.Global.FileLocation)。GetDirectories()。其中(d=>DateTime.TryParseExact(d,“mmmyyy”,CultureInfo.InvariantCulture,datetimestyle.None,out new DateTime())。ToList()。OrderBy(d=>d.LastAccessTime)。Last();但我在上面有个错误TryParseExact@GLP,根据您的要求编辑答案。您将从方法中获得
DirectoryInfo
对象数组,而不是字符串数组。请尝试编辑的代码并告诉我它是否有效。我尝试了dirInfo=new DirectoryInfo(MyApp.App_code.Global.FileLocation).GetDirectories().Where(d=>DateTime.TryParseExact(d,“MMMyyyy”,CultureInfo.InvariantCulture,datetimestyle.None,out new DateTime()).ToList().OrderBy(d=>d.LastAccessTime.Last();但我在上面有个错误TryParseExact@GLP,根据您的要求编辑答案。您将从方法中获得
DirectoryInfo
对象数组,而不是字符串数组。尝试编辑的代码,让我知道它是否有效。