【问题标题】:System.IO.Directory.CreateDirectory - weirdest exception everSystem.IO.Directory.CreateDirectory - 有史以来最奇怪的异常
【发布时间】: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);

【问题讨论】:

标签: c# windows .net-core system.io.directory


【解决方案1】:

在 Windows 中,nul 是保留文件名。没有文件或目录可以这样命名。其他保留名称包括:

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

【讨论】:

    【解决方案2】:

    'nul' 是一个设备文件,这意味着没有文件/文件夹可以具有该名称。 而不是

    string z_extra_path = "nul";
    

    试试

    string z_extra_path = "null";
    

    string z_extra_path = "";
    

    其他的是
    • con
    • aux
    • com1-9
    • lpt1-9
    • prn

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多