C# 路径格式是非法的
我想问一个简单的问题,但我遇到了一个问题。 我想知道程序执行的时间C# 路径格式是非法的,c#,logfile,C#,Logfile,我想问一个简单的问题,但我遇到了一个问题。 我想知道程序执行的时间 Console.WriteLine(DateTime.Now); 我想输出一个.log文件,文件名将有程序执行时间 String path2 = "C:\\temp"+DateTime.Now+".log"; StreamWriter path = File.CreateText(path2); path.WriteLine(DateTime.Now); 但它告诉我路径格式是非法的 我想问另一个问题 string a12 =
Console.WriteLine(DateTime.Now);
我想输出一个.log文件,文件名将有程序执行时间
String path2 = "C:\\temp"+DateTime.Now+".log";
StreamWriter path = File.CreateText(path2);
path.WriteLine(DateTime.Now);
但它告诉我路径格式是非法的
我想问另一个问题
string a12 = aaa.Element("a12").tostring();
String path2 = "C:\\temp" + a12.ToString + ".log";
但它告诉我“路径格式是非法的”
我如何解决它
谢谢您想在带引号的“”字符串中转义\并且DateTime的结果中有字符。现在,这不能在路径中。您还需要转义/替换这些字符。您希望在带引号的“”字符串中转义\并且在DateTime的结果中有字符。现在,这些字符不能在路径中。您还需要转义/替换它们。当您将
日期时间放入路径时。现在,您可能会添加无效的字符作为路径(如:
分隔符)。这就是您收到此错误消息的原因
您可以将其替换为
:
string path2 = Path.Combine
( @"C:\temp\"
, DateTime.Now.ToString("yyyy-MM-dd.HH24.mm.ss")
, ".log"
);
将DateTime.Now
放入路径时,可能会添加无效的字符作为路径(如:
分隔符)。这就是您收到此错误消息的原因
您可以将其替换为
:
string path2 = Path.Combine
( @"C:\temp\"
, DateTime.Now.ToString("yyyy-MM-dd.HH24.mm.ss")
, ".log"
);
这是因为DateTime.Now在默认情况下转换为字符串包含时间信息(例如8:53)。分号在路径名中是非法的
如果您的文件名中只包含日期,您可以使用:
String path2 = "C:\\temp" + DateTime.Now.ToString("d") + ".log";
(编辑)对于某些区域性,这仍然可能导致无效值,因此正如其他人指出的,最好使用显式格式化程序:
String path2 = "C:\\temp" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
这是因为DateTime.Now在默认情况下转换为字符串包含时间信息(例如8:53)。分号在路径名中是非法的
如果您的文件名中只包含日期,您可以使用:
String path2 = "C:\\temp" + DateTime.Now.ToString("d") + ".log";
(编辑)对于某些区域性,这仍然可能导致无效值,因此正如其他人指出的,最好使用显式格式化程序:
String path2 = "C:\\temp" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";
DateTime。根据您的本地系统设置,现在可能包含非法字符。要获得独立于系统安装所在区域性的有效且一致的文件名,您应该手动创建日志文件名,例如:
String path2 = "C:\\temp" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log";
DateTime。根据您的本地系统设置,现在可能包含非法字符。要获得独立于系统安装所在区域性的有效且一致的文件名,您应该手动创建日志文件名,例如:
String path2 = "C:\\temp" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log";
因为文件名不能接受由DateTime.Now.ToString(“d”)创建的“/”,因此创建问题
由于文件名不能接受DateTime.Now.ToString(“d”)创建的“/”,因此产生了问题。我想问另一个问题字符串a12=aaa.Element(“a12”).ToString();字符串路径2=“C:\\temp”+a12.ToString+”.log”;但它告诉我“路径格式非法”,我如何修复它意味着元素(“a12”)转换为字符串后,包含文件名非法的字符。Path.GetInvalidPathChars
static方法返回非法字符数组。string path2=“C:\\temp”+a12.ToArray()+”.log“我可以在此处使用“System.IO.Path.GetInvalidPathChars”吗?a12.ToArray()
-您确定要将数组用作文件名的一部分吗?您在这次调用后检查了path2
变量的内容吗?我想问另一个问题字符串a12=aaa.Element(“a12”).tostring();字符串path2=“C:\\temp”+a12.tostring+”.log;但它告诉我“路径格式非法”,我如何修复它意味着元素(“a12”)转换为字符串后,包含文件名非法的字符。Path.GetInvalidPathChars
static方法返回非法字符数组。string path2=“C:\\temp”+a12.ToArray()+”.log“我可以在此处使用“System.IO.Path.GetInvalidPathChars”吗?a12.ToArray()
-是否确实要将数组用作文件名的一部分?调用后是否检查了path2
变量的内容?