我希望分别按年,月,日创建对应的目录来存放上传的文件,但是碰到了如下问题:
先看代码
string folder = DateTime.Now.ToString("yyyy/MM/dd");
string path = System.IO.Path.Combine(Server.MapPath("~/File/EFax"), folder);
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
在本地(win7,IIS7)中成功的分别按年,月,日创建了对应的目录,例如:
D:\webSite\File\EFax\2010\7\23
但是发布到server2003 之后确不对了,变成了
D:\webSite\File\EFax\2010-7-23
也就是只生成了一个名为2010-7-23的目录!
请问有谁碰到此问题,是什么原因呢?
当然解决方法很简单,但是想知道产生的原因是什么....
如果你要生成D:\webSite\File\EFax\2010\7\23这样的路径的话,需要将年,月,日分别创建,
先创建年文件夹、然后是月,最后是日。
string folder = DateTime.Now.ToString("yyyy/MM/dd");这种方式的话文件系统是不能识别的(你这算是取巧,可惜没成功),最后还是会转译成2010-7-23
在win7下可以?还真是不知道。。。
DateTime.Now.ToString("yyyy\\MM\\dd");
一般文件名称都不允许含有特殊字符,难道楼上的各位都没有发现?
今天 在XP上也突然发现了这个问题,DateTime("2012-12-10").ToString("yyyy/MM/dd"),发现显示2012-12-10,让我很是奇怪,后来找到了方法改为,DateTime("2012-12-10").ToString("yyyy\\/MM\\/dd"),结果显示正常,但是不知道原因,看了上面的讨论,解决了困惑,感谢各位