我正在尝试使用以下语法创建一个名称为“今天”日期作为名称一部分的文件:
private static FileStream fs = new FileStream(@"C:\Test\log" + DateTime.Now.ToShortDateString() + ".txt", FileMode.OpenOrCreate, FileAccess.Write);
似乎Filestream不会采用可变路径......对此更好的方法是什么?
THX!
答案 0 :(得分:5)
问题是您生成了带有嵌入式斜杠的路径,ToShortDateString()
返回en-US
文化。在您的示例中,它正在尝试打开文件C:\Test\log12/6/2010.txt
,我认为文件夹C:\Test\log12\6
不存在。
尝试使用DateTime.Now.ToString("yyyyMMdd")
之类的内容来代替您的文件。
答案 1 :(得分:1)
HI Aidenn,
问题不是文件流。这是您创建文件名的方式。如果将文件名放在变量中,则可以看到它。这是它的样子:
“C:\测试\ log12 / 5 / 2010.txt”
看看ToShortDateString()方法如何包含'/'字符?这些是有效的目录分隔符。因此,由于无法找到目标“log12”和“5”,因此对CreateFile()的较低级别Win32调用失败。
您需要创建一个不包含任何无效文件名字符的文件名。
在MSDN上查看此文章Naming Files, Paths, and Namespaces。
-foredecker