我有一些文件具有相同的名稱,但具有不同的日期。 基本上我們發現與最近的日期如何獲取C#中的最新文件
文件模式是
<FileNames><YYYYMMDD><FileExtension>
e.g. test_20100506.xls indicates
<FileNames> = test_
<YYYYMMDD> = 20100506
<FileExtension> = .xls
現在在源文件夾,該文件是
standardization_20100503.xls, standardization_20100504.xls, 文件standardization_20100305.xls, replacement_20100505.xls
可以看出,standardization_.xls是3號,但 replacement_.xls只有1
輸出將其內容將
standardization_20100504.xls和replacement_20100505文件名列表。 xls
因爲其中所有的standardization_.xls都是最近的一個,而replacement_.xls也是一樣的。
我用我自己的邏輯嘗試過,但不知何故失敗。
我的想法是在
private static void GetLatestFiles(ref List<FileInfo> validFiles)
{
List<FileInfo> validFilesTemp = new List<FileInfo>();
for (int i = 0; i < validFiles.Count; i++)
{
for (int j = i+1; j < validFiles.Count; j++)
{
string getFileTextX = ExtractText(validFiles[i].Name);
string getFileTextY = ExtractText(validFiles[j].Name);
if (getFileTextX == getFileTextY)
{
int getFileDatesX = Convert.ToInt32(ExtractNumbers(validFiles[i].Name));
int getFileDatesY = Convert.ToInt32(ExtractNumbers(validFiles[j].Name));
if (getFileDatesX > getFileDatesY)
{
validFilesTemp.Add(validFiles[i]);
}
else
{
validFilesTemp.Add(validFiles[j]);
}
}
}
}
validFiles.Clear();
validFiles = validFilesTemp;
}
的ExtractNumbers是:
public static string ExtractNumbers(string expr)
{
return string.Join(null, System.Text.RegularExpressions.Regex.Split(expr, "[^\\d]"));
}
和ExtractText是
public static string ExtractText(string expr)
{
return string.Join(null, System.Text.RegularExpressions.Regex.Split(expr, "[\\d]"));
}
我使用C#3.0和框架3.5
需要幫助。這是非常迫切的
謝謝。
拋出異常{「字符串未被識別爲有效的DateTime。」} – Newbie 2010-05-04 07:56:26