我在文件夹路径中有一个备份文件就像这个C:\ Folder
下面的图片
中的文件如下所示这样的文件名... 20111011表示今天的日期 095523表示时间
我有一个日期时间选择器,当用户在日期时间选择器中选择值并选择按钮时,我有一个按钮,
我需要将日期时间选择器值与存储在该文件夹中的文件名进行比较,然后如果日期时间选择器值与文件夹名称(backup-{this is part})
的部分匹配,我想将zip文件解压缩到给定的文件夹中....
如何将日期时间选择器值与文件夹名称进行比较,并将文件提取到给定路径....
答案 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.
}
的此链接
答案 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)));