string filename = DateTime.Today.ToString() + ".csv";
if(!File.Exists(filename))
File.Create(filename);
我认为这将工作,但它会抛出'格式不支持'的错误。我只想要在我的.exe目录中创建一个csv如何根据日期创建文件?
string filename = DateTime.Today.ToString() + ".csv";
if(!File.Exists(filename))
File.Create(filename);
我认为这将工作,但它会抛出'格式不支持'的错误。我只想要在我的.exe目录中创建一个csv如何根据日期创建文件?
这是因为DateTime.Today.ToString()
包含一个斜杠,这是不作为Windows文件名的一部分有效。
你可以,但是,这样做:DateTime.Now.ToString("yyyyMMdd")
我认为问题是将DateTime转换为字符串将生成具有无效文件名字符的字符串,例如冒号(:),这将导致创造失败。
您可能想要使用格式字符串来控制生成的文件名。例如
string filename = DateTime.Today.ToString("yyyy-MM-dd") + ".csv";
您的日期有斜线的话,试试这个,而不是
string filename = Datetime.Now.Ticks.ToString() + ".csv";
我猜你的语言环境有/
/:
(或类似的混乱字符)在日期格式。您应指定一个明确的格式 - "yyyy MM dd"
例如:
string filename = DateTime.Today.ToString("yyyy MM dd",
CultureInfo.InvariantCulture) + ".csv";
大家都已经指出的那样,默认则DateTime.ToString()的格式无效字符它(几乎任何区域设置),让
string filename = DateTime.Now.ToString() + ".csv";
产生一个像2/18/2011 4:26:48 PM.csv
“文件名” - 如果你想要一个基于日期时间命名这是无效的
,尝试
string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + ".csv";
要达到这样的2011021804254.csv
您可以添加更多的格式,只是只要它不包含任何以下内容:\/: * ? " < > |
冒号和斜杠都是无效字符。 – xcud 2011-02-18 21:25:09
不冒号选择一个备用的NTFS流? – 2011-02-18 21:26:37