【问题标题】:to get folders from directory between the dates entered in two textboxes从两个文本框中输入的日期之间的目录中获取文件夹
【发布时间】:2016-11-17 07:32:50
【问题描述】:

我已经制作了这段代码

现在我想从两个文本框中输入的日期之间的目录中获取文件夹

protected void GenerateLogs()
{
    if (DdlProcess.SelectedValue == "099")
    {
        string logfolder = @"E:\ANA\Projects\Lime\Logs";
        string[] alldirectories = Directory.GetDirectories(logfolder);//get directory
        if (alldirectories.Length > 0)
        {
            for (int i = 0; i < alldirectories.Length; i++)
            {
                string[] allfiles = Directory.GetFiles(alldirectories[i]);//get files inside folder
                if (allfiles.Length > 0)
                {
                    for (int j = 0; j < allfiles.Length; j++)
                    {
                        FileInfo objfileinfo = new FileInfo(allfiles[j]);
                        string filename =       Path.GetFileName(objfileinfo.FullName);
                        if(filename.Contains("_"))
                        {
                            var filedata = File.ReadAllLines(allfiles[j]);//get file name containing "_"
                        }
                        else
                        {
                            //no (_)
                        }
                    }
                }
                else
                {
                    //no files in date folder
                }
            }
        }
        else
        {
            //no files in logs folder
        }
    }

我已经制作了这段代码

现在我想从两个文本框中输入的日期之间的目录中获取文件夹。请帮忙

【问题讨论】:

  • 日期的作用是什么?创建/修改?不清楚
  • 文件创建时
  • 日期/时间在 DirectoryInfo(不是 Directory)中。
  • "我想从日期之间的目录中获取文件夹" && "在文件创建时" 如果文件夹中的一半文件是在日期间隔之外创建的,会发生什么?请在您访问TextBox文本的地方发布代码

标签: c# asp.net linq


【解决方案1】:

如果你想过滤你要遍历的文件,你可以使用System.IOFileInfo类来代替File。然后你通过它们的CreationDate 属性过滤文件:

DateTime yourstartDate = new DateTime();
DateTime yourEndDate = new DateTime();
DirectoryInfo di = new DirectoryInfo("any_directory");
List<FileInfo> fis = di.GetFiles().Where(x => x.CreationTime >= yourstartDate && x.CreationTime <= yourEndDate).ToList()
// your can iterate this list now with for or foreach

示例

我将创建.txt 文件并存储创建第二个文件前后的时间戳。

File.Create("C:/temp/file1.txt");
DateTime start = DateTime.Now;
File.Create("C:/temp/file2.txt");
DateTime end = DateTime.Now;
foreach (FileInfo fi in new DirectoryInfo("C:/temp").GetFiles().Where(x => x.CreationTime >= start && x.CreationTime <= end))
{
    // will only get file2.txt
}

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2015-09-05
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多