0

我想尝试(以编程方式)猜测文件的创建日期。它被命名为BlaBla.2012-06-04.xlw,我猜它是在 2012 年 6 月 4 日创建的。

但是,如果文件被命名为其他名称,例如SitOnA.PotatoPanOtis.pal,我希望能够简单地放弃(没有尝试转换为 DateTime 导致异常)并向用户呈现 DateTimePicker。

可行吗?

我有这个代码:

String substr = SelectedFileName.Substring(DATE_BEGIN_POS, DATE_LENGTH);
return DateTime.Parse(substr);

我在想这样的事情是有道理的:

try 
{
    String substr = SelectedFileName.Substring(DATE_BEGIN_POS, DATE_LENGTH);
    return DateTime.Parse(substr);
}
catch (ConversionException ce) 
{
    //Show form with DateTimePicker
}

更新

似乎这样的事情应该有效:

DateTime dt;
if (!(DateTime.TryParse(substr, out dt))) {
   . . .
4

3 回答 3

4

不要猜。得到它 !

var creationTime = File.GetCreationTime(@"c:\myfile.txt");
于 2012-06-04T21:19:12.243 回答
1

您可以使用 直接询问创建时间,File.GetCreationTime或者如果您试图通过文件名猜测,那么您可以使用TryParse作为日期,如果不起作用(方法返回 false)然后显示对话框。

于 2012-06-04T21:19:01.403 回答
1

使用 RegEx 匹配文件名。

Regex r = new Regex("\d{4}-\d{2}-\d{2}");
if (r.Match(fileName).Success) {
    //GUESS!
}
于 2012-06-04T21:21:26.167 回答