2011-10-11 41 views
1

我有一個備份文件存放在文件夾路徑是這樣的C:\文件夾如何日期時間選擇器值與一些文件夾名稱比較

文件都是這樣在下面的圖片enter image description here

文件名狀這... 20111011意味着今天日期 095523意味着時間

和我有一個日期時間選擇器,我有按鈕,當用戶選擇日期時間選擇器的值,然後選擇按鈕,

我需要ŧ o將日期時間選擇器值與存儲在該文件夾中的文件名進行比較,然後如果日期時間選擇器值與文件夾名稱的部分相匹配(backup-{this is part})我想將zip文件提取到給定文件夾中....

我可以得到比較日期時間選擇器值與文件夾名稱並將文件提取到給定的路徑....

+2

你有沒有嘗試過任何東西,你有任何現有的代碼? –

回答

2

In .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

+0

我知道一個,但如何比較文件名與datetiempicker –

+0

在datetimepicker中有屬性命名值使用該屬性並進行比較。 –

+0

檢查此代碼以僅從datetimepicker獲取日期字符串theDate = dateTimePicker1.Value.ToShortDateString();或者你想獲得整個值使用字符串theDate = dateTimePicker1.Value.tostring(); –

1

首先,您將不得不正確設置DateTimePicker date-time format以選擇日期和時間。

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

接下來我想你必須通過使用DateTimePicker.Value構造文件名。看看here,你可以將DateTime轉換爲你需要的格式。

例如...

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

不知道你的時間格式。如果是12小時使用「H」並且使用「HH」24小時。有關更多示例,請參閱here。其餘部分將不會很困難...

0

可以使用System.IO.File

讀取文件名時,您已經閱讀它們,你可以使用DateTime.ParseExact解析文件的日期和時間提取的日期。

然後你只需要比較文件日期和時間與你的日期選擇器的值。

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答案與文件,以獲得工作。

0

只是它「哈克」 - 但它的作品。

 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))); 
+0

爲什麼不是DateTime.ParseExact(dateToParse,「yyyyMMddHHmmss」,CultureInfo.InvariantCulture)? – PVitt

+0

你是對的!有時候有人在錯誤的軌道上...... ;-) – Fischermaen

相關問題