System.IO.Directory.CreateDirectory - 有史以来最奇怪的异常
Posted
技术标签:
【中文标题】System.IO.Directory.CreateDirectory - 有史以来最奇怪的异常【英文标题】:System.IO.Directory.CreateDirectory - weirdest exception ever 【发布时间】:2021-11-09 00:18:33 【问题描述】:所以,我正在尝试创建以下目录:
d:\temp\ak\ty\nul
路径在循环中构造,从:d:\temp等开始,一路创建不存在的目录,所以先创建:
d:\temp\ak
然后:
d:\temp\ak\ty
and.... 然后到最后一点 nul 它抛出这个异常:
那么,发生了什么事 - \.\nul 来自哪里?
代码:
string z_base_path = @"d:\temp\ak\ty";
string z_extra_path = "nul";
string z_full_path = System.IO.Path.Combine(z_base_path, z_extra_path);
System.IO.Directory.CreateDirectory(z_full_path);
【问题讨论】:
Naming Files, Paths, and Namespaces. 【参考方案1】:在 Windows 中,nul
是保留文件名。没有文件或目录可以这样命名。其他保留名称包括:
con
prn
aux
com0-9
lpt0-9
【讨论】:
【参考方案2】:'nul' 是一个设备文件,这意味着没有文件/文件夹可以具有该名称。 而不是
string z_extra_path = "nul";
试试
string z_extra_path = "null";
或
string z_extra_path = "";
其他的是
con
aux
com1-9
lpt1-9
prn
【讨论】:
以上是关于System.IO.Directory.CreateDirectory - 有史以来最奇怪的异常的主要内容,如果未能解决你的问题,请参考以下文章