System.IO.Directory.CreateDirectory - 有史以来最奇怪的异常

ziz*_*aza 2 c# windows system.io.directory .net-core

所以,我试图创建一个以下目录:

d:\temp\ak\ty\nul

Path 是在循环中构建的,从:d:\temp等开始,一路创建不存在的目录,所以它首先创建:

d:\temp\ak

然后:

d:\temp\ak\ty

然后......然后到了最后一位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);
Run Code Online (Sandbox Code Playgroud)

小智 7

在 Windows 中,nul是保留的文件名。任何文件或目录都不能被命名为该名称。其他保留名称包括:

  • con
  • prn
  • aux
  • com{0-9}
  • lpt{0-9}