我想提供一个我以编程方式创建的文档,其中包含返回值DateTime.Now.ToString();
当“:”符号是文件名的内容时,试用失败。
任何想法?
答案 0 :(得分:4)
避免像这样的文化问题
DateTime.Now.ToString("yyyy-MMdd-HH-mm", CultureInfo.InvariantCulture)
你也可以尝试
string n = string.Format("typeoffile-{0:yyyy-MM-dd_hh-mm-ss-tt}.ext",
DateTime.Now);
试试这会对你有用
String.Replace(".","_")
上交
DateTime.Now.ToString().Replace(".","_")
答案 1 :(得分:4)
我会指定DateTime.ToString()
的格式,例如:
DateTime.Now.ToString("yyyyMMddhhmmss") //results in "20131127103249"
如果你想转到String.Replace
路线,我建议利用名为Path.GetInvalidFileNameChars()
的有用方法:
string s = DateTime.Now.ToString();
foreach (char c in Path.GetInvalidFileNameChars()) // replace all invalid characters with an underscore
{
s = s.Replace(c, '_');
}
或者,如果你涉及整个简洁的事情,你可以使用LINQ在单行中做同样的事情:
var s = new String(DateTime.Now.ToString().Select(ch => Path.GetInvalidFileNameChars().Any(invalid => invalid == ch) ? '_' : ch).ToArray());
答案 2 :(得分:2)
您可以使用替换功能将:
替换为_
DateTime.Now.ToString().Replace(":","_");
答案 3 :(得分:1)
为什么不尝试删除“:”符号,即文件名为:
20131127_0530
DateTime.Now.ToString("yyyyddMM_HHmm")
答案 4 :(得分:0)
您应该使用自定义ToString方法指定格式化程序,即:
DateTime.Now.ToString(“ddMMyyyy”) - 显示一个月的