首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XmlTextWriter路径错误?

XmlTextWriter路径错误?
EN

Stack Overflow用户
提问于 2012-02-14 11:00:18
回答 3查看 3K关注 0票数 1

下面的陈述有什么问题?

代码语言:javascript
复制
XmlTextWriter writer = new XmlTextWriter(@"D:\project\data\" + System.DateTime.Today + @"\" + System.DateTime.Now + ".xml", null);

当我尝试上述语句时,它会出现以下错误

不支持给定路径的格式。 描述:在执行当前web请求时发生了未处理的异常。请查看堆栈跟踪以获得有关错误的更多信息,以及它起源于代码的位置。 异常详细信息: System.NotSupportedException:不支持给定路径的格式。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-14 11:58:41

撇开非法字符不谈,您要做的事情是不可能的,原因很简单:只要XmlTextWriter在不存在的情况下创建文件,就不会创建目录。这就是你想要做的:

代码语言:javascript
复制
XmlTextWriter writer = new XmlTextWriter(
    /* your root path */ @"D:\project\data\" +
    /* NEW directory  */ System.DateTime.Today + @"\" +
    /* new file name  */ System.DateTime.Now + ".xml", null); 

您需要手动创建给定日期的目录:

代码语言:javascript
复制
var path = string.Format(@"D:\project\data\{0:yyyyMMdd}", DateTime.Now);
// if directory already exists nothing will happen
Directory.CreateDirectory(path);

或将日期合并为文件名:

代码语言:javascript
复制
var fileName = string.Format(@"D:\project\data\{0:yyyyMMdd}_{0:HHmmssfff}.xml",
    DateTime.Now);
票数 3
EN

Stack Overflow用户

发布于 2012-02-14 11:03:20

文件名不能包含各种符号,:是非法字符之一。试着使用这样的方法:

代码语言:javascript
复制
String.Format(@"D:\project\data\{0:yyyyMMdd}\{0:HHmmssfff}.xml", DateTime.Now);
票数 2
EN

Stack Overflow用户

发布于 2012-02-14 11:04:57

根据语言设置(区域设置),日期或时间格式可能包含文件名的非法字符。例如,德语时间格式包含冒号“:”,英文日期格式包含“/”,这两种格式在文件或目录名称中都是不允许的。

找出哪些非法字符是由您的地区生成的,或者在DateTime.ToString()中使用显式格式,或者通过应用ToString().Replace(":“、"")等来删除它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9275709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档