我目前正在开发一个Web服务,它检索XML消息,对其进行归档然后进一步处理.从Web.config中读取存档文件夹.这就是归档方法的样子
private void Archive(System.Xml.XmlDocument xmlDocument)
{
try
{
string directory = System.Configuration.ConfigurationManager.AppSettings.Get("ArchivePath");
ParseMessage(xmlDocument);
directory = string.Format(@"{0}\{1}\{2}", directory, _senderService, DateTime.Now.ToString("MMMyyyy"));
System.IO.Directory.CreateDirectory(directory);
string Id = _messageID;
string senderService = _senderService;
xmlDocument.Save(directory + @"\" + DateTime.Now.ToString("yyyyMMdd_") + Id + "_" + System.Guid.NewGuid().ToString().Substring(0, 13) + ".xml");
}
Run Code Online (Sandbox Code Playgroud)
我检索的路径结构是C:\ Program Files\Subfolder\Subfolder.在开发,QA,UAT和PRD环境中一切正常.但是在另一台机器上,我现在需要安装Web服务(不幸的是我无法调试),目录字符串是'C:Files'.为了确保我在不同的机器上仔细检查了.NET版本(我想也许在字符串之前使用@是依赖于版本的); 所有机器都使用2.0.50727.
有人认出这个问题吗?
提前致谢!
编辑:我在目录变量之前看到@对我问的问题引起了一些混乱.这不是关于@(事实上,那不应该在那里.我已经删除了它).
我的问题(改写)是:当你在一个引用的字符串之前放置@,比如@"c:\ folder\subfolder",它确保反斜杠不被解释为转义字符,对吧?它可能是什么原因导致它在一台机器上工作,而不是在另一台机器上工作?(我同意顺便说一下使用Path.Combine的答案.我只是好奇是什么导致了这种不一致的行为)
归档时间: |
|
查看次数: |
2585 次 |
最近记录: |