string filename = DateTime.Today.ToString() + ".csv";
if(!File.Exists(filename))
File.Create(filename);
我认为这样可行,但它会抛出“格式不支持”错误。我只想在我的.exe
旁边的目录中创建一个csv答案 0 :(得分:5)
我认为问题是将DateTime转换为字符串会生成一个包含无效文件名字符的字符串,例如冒号(:),这会导致创建失败。
您可能希望使用格式字符串来控制生成的文件名。 e.g。
string filename = DateTime.Today.ToString("yyyy-MM-dd") + ".csv";
答案 1 :(得分:3)
这是因为DateTime.Today.ToString()
包含斜杠,它们作为Windows文件名的一部分无效。
但是,您可以执行此操作:DateTime.Now.ToString("yyyyMMdd")
答案 2 :(得分:1)
我猜你的语言环境在日期格式中有/
/ :
(或类似的混淆字符)。您应该指定显式格式 - "yyyy MM dd"
,例如:
string filename = DateTime.Today.ToString("yyyy MM dd",
CultureInfo.InvariantCulture) + ".csv";
答案 3 :(得分:1)
正如大家所指出的那样,默认的DateTime.ToString()格式化中包含无效字符(对于任何区域设置),所以
string filename = DateTime.Now.ToString() + ".csv";
生成'{1}}之类的'文件名' - 无效
如果您想要基于日期时间的名称,请尝试
2/18/2011 4:26:48 PM.csv
获得类似string filename = DateTime.Now.ToString("yyyyMMddhhmmss") + ".csv";
您可以添加更多格式,只要它不包含以下任何格式:2011021804254.csv
答案 4 :(得分:0)
你的日期有斜线,试试这个
string filename = Datetime.Now.Ticks.ToString() + ".csv";