如何将日期时间选择器值与某些文件夹名称进行比较

时间:2011-10-11 12:34:22

标签: c# .net file datetime zip

我在文件夹路径中有一个备份文件就像这个C:\ Folder

下面的图片enter image description here

中的文件如下所示

这样的文件名... 20111011表示今天的日期                           095523表示时间

我有一个日期时间选择器,当用户在日期时间选择器中选择值并选择按钮时,我有一个按钮,

我需要将日期时间选择器值与存储在该文件夹中的文件名进行比较,然后如果日期时间选择器值与文件夹名称(backup-{this is part})的部分匹配,我想将zip文件解压缩到给定的文件夹中....

如何将日期时间选择器值与文件夹名称进行比较,并将文件提取到给定路径....

5 个答案:

答案 0 :(得分:2)

用于从特定路径获取文件的.net Directory.GetFiles方法。

链接中提到的代码下方根据需要在foreach循环中进行更改。这个循环给你文件名,你可以比较它。

public static void ProcessDirectory(string targetDirectory) 
{
    // Process the list of files found in the directory.
    string [] fileEntries = Directory.GetFiles(targetDirectory);
    foreach(string fileName in fileEntries)
      Do work here which you need.
}

点击datetimepicker value

的此链接

答案 1 :(得分:1)

首先,您必须正确设置DateTimePicker date-time format才能同时选择日期和时间。

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM dd yyyy hh mm ss";  

接下来我认为你必须使用DateTimePicker.Value构造文件名。查看here,您可以将DateTime ToString为您所需的格式。

例如......

DateTime dt = dateTimePicker1.Value;
string fileName = string.Format("backup-{0}",dt.ToString(yyyyMMddHHmmss));

不确定您的时间格式。如果是12小时则使用“H”并使用“HH”24小时。有关更多示例,请查看here。其余的并不困难......

答案 2 :(得分:0)

您可以使用System.IO.File

阅读文件名

阅读完毕后,您可以使用DateTime.ParseExact提取日期以解析文件的日期和时间。

然后你只需要将文件日期和时间与日期选择器的值进行比较。

答案 3 :(得分:0)

您可以尝试这样的事情:

DateTime dateSelected = <date coming from the picker>;
string fileRequested = string.Format("backup-{0}{1}{2}{3}{4}{5}",dateSelected.Year,dateSelected.Month,dateSelected.Day,dateSelected.Hour,dateSelected.Minute,dateSelected.Second;

然后您可以使用Emaad的答案来处理该文件。

答案 4 :(得分:0)

只是它“hacky” - 但它确实有效。

        var dateToParse = "20111011095323";
        var date = new DateTime(int.Parse(dateToParse.Substring(0, 4)),
                                int.Parse(dateToParse.Substring(4, 2)),
                                int.Parse(dateToParse.Substring(6, 2)),
                                int.Parse(dateToParse.Substring(8, 2)),
                                int.Parse(dateToParse.Substring(10, 2)),
                                int.Parse(dateToParse.Substring(12, 2)));