C# 获取NotSupportedException的原因:不支持给定路径的格式?
我创建了这个方法:C# 获取NotSupportedException的原因:不支持给定路径的格式?,c#,.net,winforms,C#,.net,Winforms,我创建了这个方法: private string GetDirectoryName(string baseString, string baseName, int startAt) { int i = startAt; while (Directory.Exists(Path.Combine(baseString, baseName + i.ToString("D6")+"_"+DateTime.Now))) {
private string GetDirectoryName(string baseString, string baseName, int startAt)
{
int i = startAt;
while (Directory.Exists(Path.Combine(baseString, baseName + i.ToString("D6")+"_"+DateTime.Now)))
{
i++;
}
return Path.Combine(baseString, baseName + i.ToString("D6") + "_" + DateTime.Now);
}
我添加了DateTime。现在在原始版本中,方法如下:
private string GetDirectoryName(string baseString, string baseName, int startAt)
{
int i = startAt;
while (Directory.Exists(Path.Combine(baseString, baseName + i.ToString("D6"))))
{
i++;
}
return Path.Combine(baseString, baseName + i.ToString("D6"));
}
然后,如果需要,我将创建目录:
string eventDir = GetDirectoryName(AnimatedGifDirectory, "Rain event ", 1);
if (!Directory.Exists(eventDir))
{
Directory.CreateDirectory(eventDir);
}
在使用日期时间之前。现在它工作正常,但在添加日期时间之后。现在我得到了一个例外
这是给出异常的目录示例,例如eventDir包含:
该方法创建的目录名为此部分:
Rain event 000001_10/26/2014 8:09:12 AM
可能是2014年8点和12点之后的空间造成了问题?也许目录名应该是这样的:
Rain event 000001_10/26/2014_8:09:12_AM ?
我想做的是,只创建像Rain event 000001、Rain event 000002和Rain event 000003这样的目录,这些目录将给出每个事件和id,因为它是一个事件
因此,也许可以以任何方式添加日期和时间。差不多吧。因此,目录仍将是Rain event 000001,但后面有一些日期和时间id。它是:字符,在Windows操作系统中是非法的路径字符。看
您还可以调用方法来确定路径字符串中的字符是否无效。根据Directory.CreateDirectory的MSDN文档,如果目录名包含不属于驱动器标签的冒号,则会引发NotSupportedException。包含日期时间时,在目录名中包含冒号。使用DateTime会导致目录名包含非法字符,或者可以使用DateTime.Now.ToFileTime,它是当前时间的数字表示形式,如果同时或在循环中执行此操作,则不一定是唯一的
\ / : * ? " < > |
以上所有内容在文件名中均无效
\ / : * ? " < > |